您的位置:首页 > 移动开发 > Android开发

Android 上下滚动TextSwitcher实例详解

2017-06-06 17:25 513 查看

Android 上下滚动TextSwitcher实例详解

1.在activity中需要代码声明

textSwitcher = (TextSwitcher)findViewById(R.id.text_switcher);
textSwitcher.setFactory(new ViewFactory() {
@Override
public View makeView() {
TextView tv = new  TextView(MainActivity.this);
tv.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16.0F);
tv.setTextColor(Color.RED);
return tv;
}
});
textSwitcher.setInAnimation(AnimationUtils.loadAnimation(this, R.anim.anim_in));
textSwitcher.setOutAnimation(AnimationUtils.loadAnimation(this, R.anim.anim_out));

2.两个anim动画xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:fillAfter="true"
android:shareInterpolator="false"  android:zAdjustment="top">
<translate
android:duration="3000"
android:fromYDelta="100%p"
android:toYDelta="0" />
</set>
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:fillAfter="true"
android:shareInterpolator="false"  android:zAdjustment="top">
<translate
android:duration="3000"
android:fromYDelta="0"
android:toYDelta="-100%p" />
</set>
<style name="pop_anim">
<item name="android:windowEnterAnimation">@anim/anim_in</item>
<item name="android:windowExitAnimation">@anim/anim_out</item>
</style>

3.用线程或者定时器实现循环翻动。

Thread t = new Thread(new Runnable() {
@Override
public void run() {
while (!flag) {
Message msg = new Message();
msg.what = 1;
msg.obj = getItem[i];
handler.sendMessage(msg);
if (i== 2) {
i = 0;
}
try {
t.sleep(3000);
i++;
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

4.hanlder更新ui

private Handler handler = new Handler(){
public void handleMessage(android.os.Message msg) {
textSwitcher.setText((String)msg.obj);
super.handleMessage(msg);
};
};

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

您可能感兴趣的文章:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Android TextSwitcher