正文  电脑教程 > 服务器教程 >

Android TextSwitcher如何实现文字上下翻牌效果

tvNotice = (TextSwitcher)rootView.findViewById(R.id.tv_notice); tvNotice...

tvNotice = (TextSwitcher)rootView.findViewById(R.id.tv_notice);

 tvNotice.setFactory(new ViewSwitcher.ViewFactory() { 
  //这里 用来创建内部的视图,这里创建TextView,用来显示文字 
   public View makeView() { 
    TextView tv =new TextView(getContext()); 
    //设置文字大小 
    tv.setTextSize(TypedValue.COMPLEX_UNIT_PX,getResources().getDimension(R.dimen.group_notice_font_size)); 
    //设置文字 颜色 
    tv.setTextColor(getResources().getColor(R.color.font_333333)); 
    return tv; 
   } 
  });  

然后自己可用timer或者Thread去控制轮播,轮播中控制tvNotice的代码如下

// 设置切入动画 
tvNotice.setInAnimation(AnimationUtils.loadAnimation(getContext(), R.anim.slide_in_bottom)); 
// 设置切出动画 
tvNotice.setOutAnimation(AnimationUtils.loadAnimation(getContext(), R.anim.slide_out_up)); 
//items是一个字符串列表,index就是动态的要显示的items中的索引 
tvNotice.setText(itmes.get(index).getTitle()); 

slide_in_bottom.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="1000" 
  android:fromYDelta="100%p" 
  android:toYDelta="0" /> 
</set> 

slide_out_up.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="1000" 
  android:fromYDelta="0" 
  android:toYDelta="-100%p" /> 
</set> 

Android TextSwitcher如何实现文字上下翻牌效果