zoukankan      html  css  js  c++  java
  • Android 制作类似支付圆圈和打钩界面ProgressWheel

    首先要说明的是,制作圆圈旋转的效果并不是博主做的,是参照了github上的一个代码,只是在上面添加了修改,对其优化并增加了一个打钩的动画。

    先来看下效果,1+的手机获取root权限真是难,没法录屏,只能使用这种截屏生成git的笨办法,其实运行起来还是很流畅的。

    这是代码github的地址:

    git clone https://github.com/LxxCaroline/ProgressWheelView.git

    这是圆圈旋转代码的github地址:

    git clone https://github.com/pnikosis/materialish-progress.git  

    我对原作者代码的修改是

    1.原作者是在onDraw函数中直接调用invalidate,会导致界面平凡刷新,特别是当你打开这个开发者选项中的设置,再回到应用程序的界面,发现他在频繁刷新。老板给我的建议是每次延迟刷新,使用handler.sendMessageDelay(Message, DelayMills),在handler的handleMessage方法中调用invalidate方法,在onDraw函数中发送消息给handler即可,只要在16ms内刷新不掉帧不卡顿就好了。

    2.打钩的动画是我主要的修改,分为两条直线去画。下面是我的设计稿,中间小的方框的边长就是代码中的tickSize,所以每次绘画的时候会先去找圆心,然后以圆心为中心去绘制正方形,分别绘制勾的两条线,先画短的,画完短的再开始画长的。

    代码中都有注释,大家自己看吧

  • 相关阅读:
    Java多线程之Exchanger
    Java8 比AtomicLong更加高效的原子操作LogAdder
    synchronized父子类对象锁重入
    java8 stream多字段排序
    利用java代码给mongo数据库加索引、删除索引等操作
    C++之IO
    C++之类的定义和性质
    C++之动态内存与类型转换
    C++之字符与其他数据类型
    C++之函数与模板
  • 原文地址:https://www.cnblogs.com/zhujiabin/p/7498122.html
Copyright © 2011-2022 走看看