现在看到很多App的开屏图都是画一个圆圈,从0度画到360度,然后倒计时三秒。感觉挺好玩,刚才忍不住写了一个,贴一下代码:

/*** weichenglin create in 17/1/25*/
public class CountDownCircleView extends TextView {private static final int COUNT = 3;final float PADDING = dip2px(1f);Paint mPaint = new Paint();float mAngel = 0f;private volatile int countDownMilli = 0;private Timer mTimer;private ValueAnimator mValueAnimator;public CountDownCircleView(Context context) {super(context);init();}public CountDownCircleView(Context context, AttributeSet attrs) {super(context, attrs);init();}public static int dip2px(float dip) {return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dip, MyApplication.getApplication().getResources().getDisplayMetrics());}private void init() {mPaint.setColor(Color.RED);mPaint.setAntiAlias(true);mPaint.setStrokeWidth(MyUtils.dip2px(1f));mPaint.setStyle(Paint.Style.STROKE);}public void start() {countDownMilli = COUNT + 1;mAngel = 0f;if (mTimer != null) {mTimer.cancel();}if (mValueAnimator != null) {mValueAnimator.cancel();}mValueAnimator = ValueAnimator.ofFloat(0f, 360f);mValueAnimator.setDuration(COUNT * 1000);mValueAnimator.setInterpolator(new LinearInterpolator());mValueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {@Overridepublic void onAnimationUpdate(ValueAnimator animation) {mAngel = (Float) animation.getAnimatedValue();invalidate();}});mValueAnimator.start();mTimer = new Timer();mTimer.scheduleAtFixedRate(new TimerTask() {@Overridepublic void run() {countDownMilli--;((Activity) getContext()).runOnUiThread(new Runnable() {@Overridepublic void run() {setText(countDownMilli + "");}});if (countDownMilli == 0) {mTimer.cancel();}}}, 0, 1000);}@Overrideprotected void onDraw(Canvas canvas) {super.onDraw(canvas);RectF rectF = new RectF(PADDING, PADDING, getWidth() - PADDING, getHeight() - PADDING);canvas.drawArc(rectF, 0f, mAngel, false, mPaint);}
}

如果你觉得帮到了你,请给作者打赏一口饭吃:

Android模仿圆形圆圈倒计时实现相关推荐

  1. android studio上下滚动菜单,Android模仿美团顶部的滑动菜单实例代码

    前言 本文主要给大家介绍了关于Android模仿美团顶部滑动菜单的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 先来看下效果图: 实现方法 这是通过 ViewPager ...

  2. Android 绘制圆形进度条

    Android 绘制圆形进度条 最近项目上有一些需求,需要绘制圆形的进度条满足设计上和交互上的需求: 实现思路 在画布上直接绘制View,需要了解一下几点 1.需要画一个圆 2.圆圈上有不同进度的颜色 ...

  3. Android 圆角圆形ImageView(超简单实现)

    前言:今天偶然看到我之前写过的一篇博客 Android项目中遇到的坑之(Android圆角圆形图 一),我在想,这不就是在模仿ImageView么,我为什么要模仿,直接拿来用不是更好么?我能直接在Im ...

  4. android实现美团首页滑动菜单功能,Android模仿美团顶部的滑动菜单实例代码

    前言 本文主要给大家介绍了关于android模仿美团顶部滑动菜单的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 先来看下效果图: 实现方法 这是通过 viewpager ...

  5. Android自定义圆形进度条

    Android自定义圆形进度条 github地址:https://github.com/opq1289/CircleProgressView 效果图: 无动画: 有动画: 整圆: 切割圆: 具体步骤: ...

  6. android手机微信收藏功能实现,Android模仿微信收藏文件的标签处理功能

    最近需要用到微信的标签功能(如下图所示).该功能可以添加已有标签,也可以自定义标签.也可以删除已编辑菜单.研究了一番.发现还是挺有意思的,模拟实现相关功能. 该功能使用类似FlowLayout的功能. ...

  7. android自定义进度条百分比跟着走,Android studio圆形进度条 百分数跟随变化

    本文实例为大家分享了Android studio圆形进度条展示的具体代码,供大家参考,具体内容如下 MainActivity import android.support.v7.app.AppComp ...

  8. Android CircleImageView圆形ImageView

     Android CircleImageView圆形ImageView CircleImageView是github上一个第三方开源的实现圆形ImageView的项目. 其在github上的项目主 ...

  9. Android学习之路-----倒计时欢迎界面(更有条理)

    2019独角兽企业重金招聘Python工程师标准>>> Android学习之路-----倒计时欢迎界面(更有条理) 转载于:https://my.oschina.net/symahl ...

最新文章

  1. 使用verdaccio 搭建npm私有仓库
  2. java遍历查询的某一列_【jQuery:遍历相同class的所有值,遍历某一列td的值】
  3. 你知道脑机接口中的“后门“攻击吗?它真的有可能在现实中实现
  4. base64编码_几分钟看懂Base64编码原理
  5. PHP学习记录第一篇:Ubuntu14.04下LAMP环境的搭建
  6. HDU 2159 FATE (DP 二维费用背包)
  7. Jupyter Notebook入门攻略
  8. 【网络安全工程师面试合集】—如何利用Http协议入侵网站
  9. Linux 基础——ls 命令
  10. 表达式求值详解(C++)
  11. python 和 的区别_Python中is和==的区别
  12. 【中级篇】Linux下搭建MySQL数据库系统
  13. 阶乘浅析poj1150 3406 zoj1222 2358
  14. Verilog初级教程(10)Verilog的always块
  15. Visual FoxPro权威指南写作原稿及光盘下载
  16. Python pandas DataFrame排序与去重操作
  17. html5圆形图片自动旋转,纯CSS3圆形图片鼠标滑过旋转翻盖动画特效
  18. Halcon 3D create_pose
  19. 音视频基本概念和FFmpeg的简单入门(新手友好+FFmpeg资料分享)
  20. 加速度传感器灵敏度的几种表示方式

热门文章

  1. HandleMessage更新UI
  2. CorelDRAW2023最新版本配置及新功能介绍
  3. Linux上使用telnet连接本机IP地址端口
  4. 路由器能运行linux程序么,用Linux系统做路由器
  5. c语言 fread读指定字节,c语言中fread的用法
  6. select语句如何过五关斩六将
  7. java中socket编程实例_Java中socket编程的实现过程(代码实例)
  8. win10连接不到win7共享打印机
  9. 汇编当中 dword ptr [ ] 是什么意思
  10. 春秋云镜 CVE-2022-24223