Android仿淘宝头条基于TextView实现上下滚动通知效果

来源:互联网 发布:淘宝网买剃须刀片 编辑:程序博客网 时间:2024/05/19 23:27

最近有个项目需要实现通知栏的上下滚动效果,仿淘宝头条的那种。

我从网上看了一些代码,把完整的效果做了出来。如图所示:

具体代码片段如下:

1.在res文件夹下新建anmin文件夹,在这个文件夹里创建两个文件

(1).anim_marquee_in.xml进入时动画

<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" > <translate android:duration="1500" android:fromYDelta="100%p" android:toYDelta="0"> </translate> </set> 

(2).anim_marquee_out.xml退出时动画

<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <translate  android:duration="1500"  android:fromYDelta="0"  android:toYDelta="-100%p"> </translate> </set> 

2.activity_main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  xmlns:tools="http://schemas.android.com/tools"  android:id="@+id/activity_main"  android:layout_width="match_parent"  android:layout_height="match_parent"  tools:context="com.spore.marqueeview.MainActivity" >  <ViewFlipper   android:id="@+id/marquee_view"   android:layout_width="match_parent"   android:layout_height="wrap_content"   android:autoStart="true"   android:background="#fff"   android:flipInterval="2500"   android:inAnimation="@anim/anim_marquee_in"   android:outAnimation="@anim/anim_marquee_out" >  </ViewFlipper> </RelativeLayout> 

3.noticelayout.xml

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  android:layout_width="match_parent"  android:layout_height="wrap_content"  android:orientation="horizontal" >  <ImageView   android:layout_width="wrap_content"   android:layout_height="wrap_content"   android:padding="5dp"   android:src="@drawable/icon_home_notice" />  <TextView   android:layout_width="match_parent"   android:layout_height="match_parent"   android:gravity="center_vertical"   android:paddingLeft="10dp"   android:singleLine="true"   android:text="[2017-02-28 08:00]通知:上午九点整开会!"   android:textSize="18sp" /> </LinearLayout> 

4.MainActivity.java

package com.iponkan.textviewupdown; import com.example.textviewupdown.R; import android.os.Bundle; import android.app.Activity; import android.view.Menu; import android.view.View; import android.widget.ViewFlipper; public class MainActivity extends Activity {  @Override  protected void onCreate(Bundle savedInstanceState) {   super.onCreate(savedInstanceState);   setContentView(R.layout.activity_main);   // 为ViewFlipper添加广告条   ViewFlipper vf = (ViewFlipper) findViewById(R.id.marquee_view);   vf.addView(View.inflate(this, R.layout.noticelayout, null));   vf.addView(View.inflate(this, R.layout.noticelayout, null));   vf.addView(View.inflate(this, R.layout.noticelayout, null));  }  @Override  public boolean onCreateOptionsMenu(Menu menu) {   // Inflate the menu; this adds items to the action bar if it is present.   getMenuInflater().inflate(R.menu.main, menu);   return true;  } } 

转载地址:http://www.jb51.net/article/108024.htm

0 0