Android自定义之TextView跑马灯的监听
TextView都有跑马灯的效果,如果说让你去监听跑马灯效果的执行,我觉得这个需求有点二了,但是也要实现。
| @Override | |
| public void draw(Canvas canvas, CharSequence text, int start, int end, | |
| float x, int top, int y, int bottom, Paint paint) { | |
| canvas.save(); | |
| canvas.drawText( text.toString(), x - startX, y, paint); | |
| canvas.restore(); | |
| int measureText = (int) paint.measureText(text, 0, text.length()); | |
| if (valueAnimator == null ) { | |
| initAnimator(measureText - mView.getWidth()); | |
| } | |
| } | |
| private int startX = 0 ; | |
| private final static int DEFULT_DURATION = 2000 ; | |
| private int duration = DEFULT_DURATION ; | |
| @Override | |
| public int getSize(Paint paint, CharSequence text, int start, int end, | |
| FontMetricsInt fm) { | |
| return 40; | |
| } | |
| private void initAnimator(int width ){ | |
| valueAnimator = ValueAnimator.ofInt(0, width , 0 ); | |
| valueAnimator.addUpdateListener(new AnimatorUpdateListener() { | |
| @Override | |
| public void onAnimationUpdate(ValueAnimator animation) { | |
| startX = (Integer) animation.getAnimatedValue() ; | |
| mView.invalidate(); | |
| } | |
| }); | |
| valueAnimator.setInterpolator(new LinearInterpolator()); | |
| valueAnimator.setDuration(duration); | |
| valueAnimator.addListener(new AnimatorListenerAdapter() { | |
| @Override | |
| public void onAnimationRepeat(Animator animation) { | |
| if (mEasySpanListener != null ) { | |
| mEasySpanListener.over(); | |
| } | |
| } | |
| }); | |
| valueAnimator.setRepeatCount(Integer.MAX_VALUE); | |
| valueAnimator.start(); | |
| } |
Android自定义之TextView跑马灯的监听的更多相关文章
- Android自己定义之TextView跑马灯的监听
TextView都有跑马灯的效果,假设说让你去监听跑马灯效果的运行.我认为这个需求有点二了.可是也要实现. 思路: 1.自己定义View 继承TextView 这样的方法过于麻烦,仅仅是监听一个 ...
- Android学习总结——TextView跑马灯效果
Android系统中TextView实现跑马灯效果,必须具备以下几个条件: 1.android:ellipsize="marquee" 2.TextView必须单行显示,即内容必须 ...
- 【Android】不依赖焦点和选中的TextView跑马灯
前言 继承TextView,并仿照源码修改而来,主要是取消了焦点和选中了判断,也不依赖文本的宽度. 声明 欢迎转载,但请保留文章原始出处:) 博客园:http://www.cnblogs.com 农民 ...
- Android:TextView跑马灯-详解
Android:TextView跑马灯_详解 引言: TextView之所以需要跑马灯,是由于文字太长,或者是吸引眼球. 关键代码如下: android:singleLine="true&q ...
- 【Android】TextView跑马灯效果
老规矩,先上图看效果. 说明 TextView的跑马灯效果也就是指当你只想让TextView单行显示,可是文本内容却又超过一行时,自动从左往右慢慢滑动显示的效果就叫跑马灯效果. 其实,TextView ...
- 【Android】不依赖焦点和选中的TextView跑马灯【2】
前言 之前有写一篇TextView跑马灯的效果,后来实际项目中有发现新的问题,比如还是无法自动跑,文本超过了显示区域就截取的问题,今天换了一种思路来实现,更简单更好用. 声明 欢迎转载,但请保留文章原 ...
- Third Day:正式编程第三天,学习实践内容TextView跑马灯、AutoCompleteTextView、multiAutoCompleteTextView以及ToggleButton、checkedBox、RadioButton等相关实践
2.针对Focused的TextView跑马灯(文字较多一行无法显示)效果 针对单个TextView的跑马灯效果,可直接在TextView控件参数中添加三个属性: android:singleLine ...
- TextView跑马灯
TextView跑马灯 textView跑马灯实现:1.定义textView标签的4个属性:android:singleLine="true"//使其只能单行android:ell ...
- [Android1.5]TextView跑马灯效果
from: http://www.cnblogs.com/over140/archive/2010/08/20/1804770.html 前言 这个效果在两周前搜索过,网上倒是有转载,可恨的是转载之后 ...
随机推荐
- iOS10之后openURL:方法过期之后的替代方法及使用
目前苹果为iOS10开放了一个key:UIApplicationOpenURLOptionUniversalLinksOnly但亲测无效 目前使用的是这个key:UIApplicationOpenUR ...
- 通过ReentrantLock源代码分析AbstractQueuedSynchronizer独占模式
1. 重入锁的概念与作用 reentrant 锁意味着什么呢?简单来说,它有一个与获取锁相关的计数器,如果已占有锁的某个线程再次获取锁,那么lock方法中将计数器就加1后就会立刻返回.当释 ...
- JS中的各种检测
//null 只在肯定返回null值时才使用null比较 var element = document.getElementById("my-div"); if (element ...
- 手机前端页面js
(function () { var phoneWidth = parseInt(window.screen.width); var phoneScale = phoneWidth / 640; va ...
- mssql中sp_executesql的用法
上图:
- IT部门能力评估...
IT运行成本和变化成本越来越高,IT部门是否上了一些对企业无价值的系统,是否充分利用了已有系统的价值? 随 着IT应用不断深入,庞大的企业IT系统日积月累,各种隐患渐渐显露.IT系统变得越来越复杂,运 ...
- C#新开一个线程取到数据,如何更新到主线程UI上面
一:问题 之前有被面试官问过,在WinForm中,要去网络上获取数据,由于网络环境等原因,不能很快的完成,因此会发生进程阻塞,造成主进程假死的现象,需要怎么解决? 二:思路 因此,往往是新 ...
- 《objective-c基础教程》学习笔记(十一)—— 类别
在编写面向对象程序的时候,我们经常想为现有的类添加一些新的行为.有些时候,我们可以创建这个类的子类.但是,如果我们用到工具集或者类库的时候,无法处理新建的子类.这时,Objective-C就给我们提供 ...
- android中的layoutparams参数使用的简单总结
定义: 我们可以在Android的framework中的ViewGroup类里找到定义的类: public static class LayoutParams{...} 此类有如下注释: Layout ...
- android apk--程序发布前的准备
摘自:http://www.cnblogs.com/androidsuperman/p/4396889.html 首先,需要准备的工作: 1 用户协议(可以是本地html资源,也可以是通过webv ...