//// attrs.xml 自定义属性
<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="SlidingText">
<attr name="animationDuration" format="integer" />
</declare-styleable>
</resources>
///// main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
xmlns:slidingtext="http://schemas.android.com/apk/res/com.testSildingTextView"
android:layout_height="fill_parent">
<com.testSildingTextView.SlidingTextView
android:id="@+id/sliding_textview" android:layout_width="fill_parent"
android:layout_height="wrap_content"
slidingtext:animationDuration="500"
android:layout_gravity="center">
<TextView android:layout_width="fill_parent" android:gravity="center_horizontal"
android:layout_height="wrap_content" android:text="sssssss" />
</com.testSildingTextView.SlidingTextView>
</LinearLayout>
首先自定义名称xmlns:slidingtext=http://schemas.android.com/apk/res/com.testSildingTextView
这里使用了自定义的名称
slidingtext:animationDuration="500"
///// SlidingTextView
private String[] showTexts = new String[] { "ssssss", "aaaaaa", "bbbbbb" }; // 用来记录显示哪个字符串 private int count = 0; private int mDuration; private TextView text; private int textWidth = 200;//获取自定义变量public SlidingTextView(Context context, AttributeSet attrs) { super(context, attrs); TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.SlidingText); mDuration = a .getInteger(R.styleable.SlidingText_animationDuration, 750); }//设置要显示的字符串 public void setShowText(String[] showTexts){ this.showTexts=showTexts; } // 回调函数 界面初始化快结束时调用protected void onFinishInflate() { super.onFinishInflate(); text = (TextView) this.getChildAt(0); mHandler.postDelayed(appear, 1000); }private Handler mHandler = new Handler() { @Override public void handleMessage(Message msg) { // 1为出现,2为隐藏 switch (msg.arg1) { case 1: doAnimationOpen(); break; case 2: doAnimationClose(); break; } } };public void doAnimationOpen() { post(appear); } // 出现的效果 Runnable appear = new Runnable() { public void run() { TranslateAnimation animation; int fromXDelta = 0, toXDelta = 0, fromYDelta = 0, toYDelta = 0; int calculatedDuration = 0; fromXDelta = textWidth; toXDelta = 0; calculatedDuration = mDuration * Math.abs(toXDelta - fromXDelta) / textWidth; animation = new TranslateAnimation(fromXDelta, toXDelta, fromYDelta, toYDelta); animation.setDuration(calculatedDuration); animation.setAnimationListener(new AnimationListener() { @Override public void onAnimationStart(Animation animation) { if(showTexts.length!=0){ count = (count + 1) % showTexts.length; text.setText(showTexts[count]); } text.setVisibility(VISIBLE); } @Override public void onAnimationRepeat(Animation animation) { } @Override public void onAnimationEnd(Animation animation) { mHandler.postDelayed(hide, 2500); } }); startAnimation(animation); } }; public void doAnimationClose() { post(hide); } // 隐藏的效果 Runnable hide = new Runnable() { public void run() { TranslateAnimation animation; int fromXDelta = 0, toXDelta = 0, fromYDelta = 0, toYDelta = 0; int calculatedDuration = 0; toXDelta = -1 * textWidth; calculatedDuration = mDuration * Math.abs(toXDelta - fromXDelta) / textWidth; animation = new TranslateAnimation(fromXDelta, toXDelta, fromYDelta, toYDelta); animation.setDuration(calculatedDuration); animation.setAnimationListener(new AnimationListener() { @Override public void onAnimationStart(Animation animation) { } @Override public void onAnimationRepeat(Animation animation) { } //动画结束时 设置textview的状态 @Override public void onAnimationEnd(Animation animation) { mHandler.postDelayed(appear, 500); text.setVisibility(INVISIBLE); } }); startAnimation(animation); } };
这个动画效果主要是每次开出一条线程来运行的,首次运行后等2点5秒,就将textview以动画效果向左运行,等0.5秒后从右边出现,动画结束后隐藏,不断循
分享到:
相关推荐
实现TextView的点击效果,获得更好的用户 体验
android中TextView控件的一些常用效果:HTML设置样式、TextView点击事件,TextView跑马灯效果,TextView显示图片效果。
实现TextView圆角效果 demo http://blog.csdn.net/love7323315/article/details/7016465
本文实例讲述了Android TextView实现垂直滚动效果的方法。分享给大家供大家参考,具体如下: 在TextView中,如果文本很长,可能需要实现垂直滚动显示文本的效果。这里需要在XML布局文件中为TextView设置如下几个属性...
android 设置textview中划线效果
实现textView 跑马灯效果
android非常炫酷的 TextView 效果
textview跑马灯效果,文字滚动效果
android TextView android TextView
TextView自定义各种效果实现,满足绝大多数需要
自定义TextView实现文字闪烁效果
TextView + 背景设置, 产生自定义Tab选中效果
自定义TextView,单TextView ondraw 字符串 竖直滑动仿广告滑动效果
应用Secret 中的效果实现的文字淡入淡出的效果,不同的文字淡入淡出的效果、速度是不同的。项目地址:https://github.com/matthewrkula/SecretTextView效果图:如何使用SecretTextView继承了android.widget.TextView...
TextView设置字体格式以及滚动显示效果
textview 展开收起效果,点击更多可以查看更多内容,点击收起只显示4行内容
android 仿《最美壁纸》iOS版文字逐个飞入效果 ,效果很不错。我也是从别的网上下的。
仿淘宝头条资讯滚动,TextView上下滚动效果,eclipse项目
Android有趣的textview与button特效
Android 为textView增加边框效果,这又是一个初级的Android文字布局示例,今天是为TextView文字框增加一个外边框,可实现在画布上画边框的功能,在填充方面,你还可使用不透明的9.png和透明的9.png,带边框的...