public class HightLightTextView extends TextView {// 存储view的宽度  private int mTextViewWidth = 0;// 画笔  private Paint mPaint;// 线性渲染  private LinearGradient mLinearGradient;// 存储变换的matrix  private Matrix matrix;// 移动距离  private int mTranslateX = 0;// 构造方法  public HightLightTextView(Context context) {this(context, null);}public HightLightTextView(Context context, AttributeSet attrs) {this(context, attrs, 0);}public HightLightTextView(Context context, AttributeSet attrs, int defStyle) {super(context, attrs, defStyle);}/*** view的调用过程:构造方法->onFinishInflate->onSizeChanged->onDraw*/@Overrideprotected void onSizeChanged(int w, int h, int oldw, int oldh) {super.onSizeChanged(w, h, oldw, oldh);// 获取view的宽度,初始化画笔等初始属性  if (mTextViewWidth == 0) {mTextViewWidth = getMeasuredWidth();// 如果宽度大于0的话,则初始化  if (mTextViewWidth > 0) {// 初始化画笔  mPaint = getPaint();// 线性渲染  mLinearGradient = new LinearGradient(0, getMeasuredHeight(), mTextViewWidth, 0,new int[]{0X55FFFFFF, 0XFFFFFFFF, 0X55FFFFFF},new float[]{0, 0.5f, 1}, Shader.TileMode.CLAMP);mPaint.setShader(mLinearGradient);matrix = new Matrix();}}}@Overrideprotected void onDraw(Canvas canvas) {super.onDraw(canvas);if (matrix != null) {mTranslateX += mTextViewWidth / 10;// 如果移动的距离大于两倍的宽度,则重新开始移动  if (mTranslateX > 2 * mTextViewWidth) {mTranslateX = -mTextViewWidth;}// 平移matrix  matrix.setTranslate(mTranslateX, 0);// 设置线性变化的matrix
            mLinearGradient.setLocalMatrix(matrix);// 延迟50ms重绘  (重绘时会重新调用onDraw)postInvalidateDelayed(50);}}}

转载于:https://www.cnblogs.com/819158327fan/p/8554891.html

Android-滑动解锁高亮文字自定义TextView相关推荐

  1. android自定义滑块解锁,android 滑动解锁

    通过android自定义View实现横向的滑动解锁,1.滑动到中间会自动返回到原始的位置,2.滑动到底部会自动解锁,会触发解锁的回调:首先看效果图如下: 实现以上部分一共分为三部分: 其中背景通过sh ...

  2. Android滑动解锁功能实现,Android_滑动解锁

    1.滑动解锁代码流程图: 流程图 图片资源:https://pan.baidu.com/s/1tkcw0tdxV78mnwHqOtcAGg 提取码:2xsq 2.代码: xml文件: xmlns:ap ...

  3. android 点击震动取消,android滑动解锁震动效果的开启和取消

    如果我们需要根据设置中的触摸震动开关来开启和取消滑动解锁的震动效果,就需要做以下修改了. 在LockScreen.java类中的LockScreen方法中的 else if (mUnlockWidge ...

  4. Android流光动画,android开发自定义TextView文本流光效果——滑动解锁

    由于项目需求,需要做一个app锁屏页,其中就有一个需要滑动解锁的文字流光效果.我这里通过自定义Textview来实现: @Override protected void onLayout(boolea ...

  5. android m 滑动解锁,滑动解锁Slideunlock

    滑动解锁(Slideunlock)在之前的塞班机上可谓光茫四射,惹得一身荣耀,如今登入android市场,依然备受关注,多种解锁截屏法方式,满足不同人的需求. 软件介绍 滑动解锁(Slideunloc ...

  6. Android 自定义View 滑动解锁

    自定义view来绘制一个类似滑动解锁的button,注释都在,效果如下 代码在下面,替换一下资源,可以直接使用,如果需要画的是圆角的话,需要把下面两行注释的DrawLine的注释打开,然后把两行dra ...

  7. android如何让自定义控件居中,Android自定义控件之自定义TextView,实现drawableLeft可以和文字一起居中...

    如何实现使用TextView的DrawableLeft使图片和文字居中显示呢??? 代码如下: 1.首先自定义一个类,继承TextViewpackage com.test.signcalendar.w ...

  8. android 微信朋友圈 全功能,Android仿微信朋友圈文字展开全文功能 Android自定义TextView仿微信朋友圈文字展开全文功能...

    Android自定义TextView仿微信朋友圈文字信息,展开全文功能 代码及注释如下: 首先写一个xml文件 showmore.xml: android:orientation="vert ...

  9. android 微博字体高亮,安卓开发札记——高仿新浪微博文字处理(实现关键字高亮,自定义表情替换并加入点击事件实现)...

    安卓开发笔记--高仿新浪微博文字处理(实现关键字高亮,自定义表情替换并加入点击事件实现) 先让大家看下效果图,这个是我自己在闲暇时间仿写的新浪微博客户端: 今天来讲讲如何实现上图的效果,这里需要用到S ...

最新文章

  1. Big Data Security Part One: Introducing PacketPig
  2. oracle 日期 extract,ORACLE——EXTRACT() 截取日期时间的函数使用
  3. 一步步编写操作系统(1)
  4. Python+Selenium+PO模型实现自动化测试
  5. GDCM:ReadSelectedPrivateGroups的测试程序
  6. 【剑指offer】面试题25:合并两个排序的链表(Java)
  7. pyqt界面屏幕分辨率自适应_在Qt5和PyQt5中设置支持高分辨率屏幕自适应的方法
  8. Java学习个人备忘录之构造函数this
  9. php百度语音合成,Drupal 与百度云语音合成(PHP SDK)的集成
  10. Ambari集群里操作时典型权限问题put: `/home/bigdata/1.txt': No such file or directory的解决方案(图文详解)...
  11. TabContainer样式设置(2)
  12. pythonffmpeg 推流_ffmpeg推流和播放命令
  13. 《大型网站技术架构》笔记(思维导图)
  14. Google Earth Engine(GEE)基于哨兵数据计算植被覆盖度—以宁夏为例
  15. mediatek无线网卡驱动 linux,MediaTek 高速USB网卡驱动适配
  16. 一行代码一道题:求2的幂次方
  17. 反馈对于用户体验的重要性
  18. python背景颜色代码大全_python3中布局背景颜色代码分析
  19. docker容器添加自定义hosts
  20. 伯克利的ICO计划能否帮助其解决住房短缺问题?

热门文章

  1. VUE技术栈学习笔记(https://segmentfault.com/a/1190000012530187)
  2. mac 下配置连接Linux服务器方法,上传下载文件操作
  3. 学习笔记(11月03日)
  4. 云安全:云访问安全代理(CASB)系统的陷阱和潜力
  5. ActiveMQ消息传送机制以及ACK机制详解
  6. 解决Ubuntu 14下,PhpStorm 9.x 编辑器界面中文乱码的问题
  7. Win7无线网络共享设置方法
  8. 现在比较流行的三级菜单,京东商城,淘宝网效果等等。(修正版)
  9. Android应用的Tab键,来回反复点击会报ANR,是空指针导致的,判空就可以解决
  10. Typeface 字体样式