本文转载https://xwc2013.iteye.com/blog/1976051
今天看到了一种文字翻滚的效果,感觉非常实用。所以就自己试着做出了这种效果,现在把它分享给大家!
首先在res目录下新建anim文件夹,再在其中分别新建push_up_in.xml和push_up_out.xml 两个文件,具体如下:
push_up_in.xml 文字进入的效果 时长设置为0.5秒
xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:fromYDelta="100%p" android:toYDelta="0" android:duration="500"/> <alpha android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="500" /> set>
push_up_out.xml 文字淡出的效果 设置动画时长 duration
xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:fromYDelta="0" android:toYDelta="-100%p" android:duration="500"/> <alpha android:fromAlpha="1.0" android:toAlpha="0.0" android:duration="500" /> set>
如果要实现 文字的不停的向上翻滚的效果,那么这时我们可以使用使用到ViewFlipper,用它把我们希望显示的内容包裹起来。具体实现代码如下:
main.xml
xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> <ViewFlipper android:id="@+id/viewfli" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#ffffff"> ViewFlipper> LinearLayout>
TextViewAmonActivity.java
package com.taoblog; import java.util.ArrayList; import java.util.List; import android.app.Activity; import android.os.Bundle; import android.widget.TextView; import android.widget.ViewFlipper; /** * @Description:TODO 实现文字的上下翻滚的效果 */ public class TextViewAmonActivity extends Activity { private ViewFlipper viewfli; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); init(); } /** * @Description: 对UI进行初始化操作 */ private void init() { viewfli = (ViewFlipper) super.findViewById(R.id.viewfli); // 为ViewFlipper设置内容 Listlist = this.getData(); int size = list.size(); for(int i = 0; i < size; i++) { viewfli.addView(list.get(i)); } // 设置文字in/out的动画效果 viewfli.setInAnimation(this, R.anim.push_up_in); viewfli.setOutAnimation(this, R.anim.push_up_out); viewfli.startFlipping(); } /** * @Description: 要显示的文字信息 * 在实际开发中,此方法可为对服务器返回数据的解析操作 * @return list */ private List getData() { List list = new ArrayList (); for(int i = 0; i < 5; i++) { TextView tv = (TextView) new TextView(this); tv.setText("这是测试用的第 "+i+" 行测试数据:"); list.add(tv); } return list; } }
至此,功能全部实现!
亲测可用!!