[置顶] 【Android】Android开发可以手动进行控制的跑马灯效果,包括从左到右,以及从右到左,
2016-09-18 10:15
417 查看
作者:程序员小冰,GitHub主页:https://github.com/QQ986945193
新浪微博:http://weibo.com/mcxiaobing
首先给大家看一下我们今天这个最终实现的效果图:
这个主要是用到的自定义TextView,然后里面开一个线程进行,进行滚动效果。
我这里写了两个自定义TextView,分别是从左到右,以及从右到左。利用滚动
的偏移量,进行设置滚动的位置。然后利用一个变量,进行区分是否是滚动状态。
我这里给大家看一下代码吧,只给大家看一下其中一个自定义View的。
布局我就不写了,直接引用这个view就行了。然后java类中看一下吧,其实
也是直接调用它的方法。
好了。到此结束吧,不懂得请留言或者私信。源代码需要的可以去
(AndroidStudio版)github下载地址:
https://github.com/QQ986945193/DavidMarqueeControlProject
新浪微博:http://weibo.com/mcxiaobing
首先给大家看一下我们今天这个最终实现的效果图:
这个主要是用到的自定义TextView,然后里面开一个线程进行,进行滚动效果。
我这里写了两个自定义TextView,分别是从左到右,以及从右到左。利用滚动
的偏移量,进行设置滚动的位置。然后利用一个变量,进行区分是否是滚动状态。
我这里给大家看一下代码吧,只给大家看一下其中一个自定义View的。
package davidmarqueecontrolproject.qq986945193.davidmarqueecontrolproject; import android.content.Context; import android.graphics.Canvas; import android.graphics.Paint; import android.util.AttributeSet; import android.widget.TextView; /** * @author :程序员小冰 * @新浪微博 :http://weibo.com/mcxiaobing * @GitHub: https://github.com/QQ986945193 * @CSDN博客: http://blog.csdn.net/qq_21376985 * @码云OsChina :http://git.oschina.net/MCXIAOBING * <p/> * 从左到右 滚动自定义TextView */ public class AutoText extends TextView implements Runnable { private int currentScrollX;// 当前滚动的位置 private boolean isStop = false; private int textWidth; private boolean isMeasure = false; public AutoText(Context context) { super(context); // TODO Auto-generated constructor stub } public AutoText(Context context, AttributeSet attrs) { super(context, attrs); } public AutoText(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } @Override protected void onDraw(Canvas canvas) { // TODO Auto-generated method stub super.onDraw(canvas); if (!isMeasure) {// 文字宽度只需获取一次就可以了 getTextWidth(); isMeasure = true; } } /** * 获取文字宽度 */ private void getTextWidth() { Paint paint = this.getPaint(); String str = this.getText().toString(); textWidth = (int) paint.measureText(str); } // 重写setText 在setText的时候重新计算text的宽度 @Override public void setText(CharSequence text, BufferType type) { // TODO Auto-generated method stub super.setText(text, type); this.isMeasure = false; } @Override public void run() { currentScrollX -= 2;// 滚动速度 scrollTo(currentScrollX, 0); if (isStop) { return; } if (getScrollX() <= -(this.getWidth())) { scrollTo(textWidth, 0); currentScrollX = textWidth; // return; } postDelayed(this, 5); } // 开始滚动 public void startScroll() { isStop = false; this.removeCallbacks(this); post(this); } // 停止滚动 public void stopScroll() { isStop = true; // textWidth=currentScrollX; //随时停止 } // 从头开始滚动 public void startFor0() { currentScrollX = 0; startScroll(); } }
布局我就不写了,直接引用这个view就行了。然后java类中看一下吧,其实
也是直接调用它的方法。
package davidmarqueecontrolproject.qq986945193.davidmarqueecontrolproject; import android.app.Activity; import android.os.Bundle; import android.view.View; import davidmarqueecontrolproject.qq986945193.davidmarqueecontrolproject.MarqueeText; import davidmarqueecontrolproject.qq986945193.davidmarqueecontrolproject.R; /** * @author :程序员小冰 * @新浪微博 :http://weibo.com/mcxiaobing * @GitHub: https://github.com/QQ986945193 * @CSDN博客: http://blog.csdn.net/qq_21376985 * @码云OsChina :http://git.oschina.net/MCXIAOBING */ public class MainActivity extends Activity { private MarqueeText test; private AutoText auto_text; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); test = (MarqueeText) findViewById(R.id.test); auto_text = (AutoText) findViewById(R.id.auto_text); } public void start(View v) { test.startScroll(); // auto_text.startScroll(); } public void stop(View v) { test.stopScroll(); // auto_text.stopScroll(); } public void startFor0(View v) { test.startFor0(); // auto_text.startFor0(); } }
好了。到此结束吧,不懂得请留言或者私信。源代码需要的可以去
(AndroidStudio版)github下载地址:
https://github.com/QQ986945193/DavidMarqueeControlProject
相关文章推荐
- 【Android】Android开发可以手动进行控制的跑马灯效果,包括从左到右,以及从右到左,
- 【Android】Android开发可以手动进行控制的跑马灯效果,包括从左到右,以及从右到左,
- [置顶] 【Android】利用Fiddler进行抓包详解教程。抓取接口以及数据,可以抓真实安卓手机或者模拟器。
- Android开发textview中跑马灯效果
- 推荐12个亲测Android开发源码(包括应用、游戏、效果等等)
- Android开发之ImageSwitcher组件的使用以及设置图片切换的效果
- [置顶] android 软电话 开发包-JNI 封装 SIP 协议,可进行二次开发应用于VOIP
- 【Android UI设计与开发】第03期:引导界面(三)仿微信引导界面以及动画效果
- 利用MCI命令进行 播放录制音乐,以及弹出光驱,音量控制获得播放进度等等操作。。。开发必备。
- Android应用开发——跑马灯效果
- Android应用开发——跑马灯效果
- Android应用开发——跑马灯效果
- Android:TextView不获取焦点可以实现跑马灯的效果
- 推荐12个Android开发源码(包括应用、游戏、效果等等)
- 【Android UI设计与开发】第03期:引导界面(三)仿微信引导界面以及动画效果
- Android开发之跑马灯效果
- Android开发之跑马灯效果
- 【Android UI设计与开发】第03期:引导界面(三)仿微信引导界面以及动画效果
- 【Android UI设计与开发】第03期:引导界面(三)仿微信引导界面以及动画效果
- 【Android UI设计与开发】第03期:引导界面(三)仿微信引导界面以及动画效果