自定义textview控件实现文字滚动效果
来源:互联网 发布:红包自动抢软件 编辑:程序博客网 时间:2024/05/15 14:07
/**
* 当触摸该控件是会滚动
*/
public class ZDYMarqueeText extends TextView {
private int speed = 3;// 默认移动的速度
private int time = 50;// 每个50毫秒
private boolean isStop;// 是否停止滚动
private String mText;// 文本内容
private int mTextWidth;// 文本的宽度
private int mCurrentScrollX;// X轴坐标
public ZDYMarqueeText(Context context) { super(context);}public ZDYMarqueeText(Context context, AttributeSet attrs) { super(context, attrs);}public ZDYMarqueeText(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle);}private Handler mHandler = new Handler() { public void handleMessage(android.os.Message msg) { if (msg.what == 0x11) { mCurrentScrollX += speed;// 计算x轴滑动的距离 if (mCurrentScrollX > mTextWidth) { scrollTo(0, 0);// 若距离大于文本宽度,则重新计算 mCurrentScrollX = 0; } else { scrollTo(mCurrentScrollX, 0);// 滚动到指定的位置 } } }};/** * 启动滚动效果,并执行一些初始化操作 */public void start() { mText = getText().toString();// 获取滚动文本内容 mTextWidth = (int) getPaint().measureText(mText);// 计算文本的宽度 mCurrentScrollX = 0;// X轴坐标默认为0 startThread();}public void startThread() { isStop = false; new Thread() { public void run() { if (!isStop) { try { mHandler.sendEmptyMessage(0x11); Thread.sleep(time); } catch (Exception e) { e.printStackTrace(); } } }; }.start();}@Overridepublic boolean onTouchEvent(MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: case MotionEvent.ACTION_MOVE: case MotionEvent.ACTION_SCROLL://按下、拖动、滑动 pause(); break; default: gonOn(); break; } return true;//点击才能动}//滚动private void gonOn() { startThread();}//暂停private void pause() { isStop=true;}
}
//在主窗体中调用
public class ZDYMarqueeActivity extends Activity {
private ZDYMarqueeText textview;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_zdy_marquee);
textview=(ZDYMarqueeText) this.findViewById (R.id.zdy_marquee);
textview.start();//启动滚动效果
}
}
//编辑XML布局文件(主要代码)
0 0
- 自定义textview控件实现文字滚动效果
- android 用textview实现文字滚动效果
- android TextView 实现自定义文字点击效果
- 自定义TextView 实现文字渐变效果
- 自定义TextView实现文字伞动效果
- Android 自定义控件:垂直滚动的TextView实现竖向跑马灯效果
- Textview的文字滚动,跑马灯效果的实现
- Android开发之TextView文字水平滚动效果实现
- 一分钟实现 Android textview 跑马灯文字滚动效果
- TextView实现跑马灯效果(文字滚动)
- TextView单行显示,文字左右滚动(走马灯效果)实现条件:
- TextView实现滚动效果
- 自定义控件:实现半圆滚动菜单效果
- 文字划掉效果-自定义Textview
- 自定义View—实现滚动TextView(跑马灯)效果
- 自定义textview实现竖直滚动跑马灯效果
- 【Android UI】自定义TextView实现动态的文字闪动效果
- 继承TextView实现自定义动态文字闪动效果
- CF--#334-div2--B
- Apriori算法 (Introduction to data mining)
- iOS开发之事件的产生和传递
- HDU_1009 (贪心问题)
- js的常用正则表达式
- 自定义textview控件实现文字滚动效果
- 【C语言提高17】字符串copy
- 解决CefAddWebPluginDirectory不好用的问题(设置插件的指定路径)
- Smash fear, learn anything 无所畏惧,学无止境-Tim Ferriss的Ted
- Android注释规范
- Exercises 3.17 输入一段文字到string类型的vector中,并将其改为大写
- 利用php+curl调用极光IM第三方REST API方法经验
- centos6.5使用JMX时远程连接不上的问题
- LeetCode 37 Sudoku Solver(求解数独)(*)