Android模仿圆形圆圈倒计时实现
现在看到很多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模仿圆形圆圈倒计时实现相关推荐
- android studio上下滚动菜单,Android模仿美团顶部的滑动菜单实例代码
前言 本文主要给大家介绍了关于Android模仿美团顶部滑动菜单的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 先来看下效果图: 实现方法 这是通过 ViewPager ...
- Android 绘制圆形进度条
Android 绘制圆形进度条 最近项目上有一些需求,需要绘制圆形的进度条满足设计上和交互上的需求: 实现思路 在画布上直接绘制View,需要了解一下几点 1.需要画一个圆 2.圆圈上有不同进度的颜色 ...
- Android 圆角圆形ImageView(超简单实现)
前言:今天偶然看到我之前写过的一篇博客 Android项目中遇到的坑之(Android圆角圆形图 一),我在想,这不就是在模仿ImageView么,我为什么要模仿,直接拿来用不是更好么?我能直接在Im ...
- android实现美团首页滑动菜单功能,Android模仿美团顶部的滑动菜单实例代码
前言 本文主要给大家介绍了关于android模仿美团顶部滑动菜单的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 先来看下效果图: 实现方法 这是通过 viewpager ...
- Android自定义圆形进度条
Android自定义圆形进度条 github地址:https://github.com/opq1289/CircleProgressView 效果图: 无动画: 有动画: 整圆: 切割圆: 具体步骤: ...
- android手机微信收藏功能实现,Android模仿微信收藏文件的标签处理功能
最近需要用到微信的标签功能(如下图所示).该功能可以添加已有标签,也可以自定义标签.也可以删除已编辑菜单.研究了一番.发现还是挺有意思的,模拟实现相关功能. 该功能使用类似FlowLayout的功能. ...
- android自定义进度条百分比跟着走,Android studio圆形进度条 百分数跟随变化
本文实例为大家分享了Android studio圆形进度条展示的具体代码,供大家参考,具体内容如下 MainActivity import android.support.v7.app.AppComp ...
- Android CircleImageView圆形ImageView
Android CircleImageView圆形ImageView CircleImageView是github上一个第三方开源的实现圆形ImageView的项目. 其在github上的项目主 ...
- Android学习之路-----倒计时欢迎界面(更有条理)
2019独角兽企业重金招聘Python工程师标准>>> Android学习之路-----倒计时欢迎界面(更有条理) 转载于:https://my.oschina.net/symahl ...
最新文章
- 使用verdaccio 搭建npm私有仓库
- java遍历查询的某一列_【jQuery:遍历相同class的所有值,遍历某一列td的值】
- 你知道脑机接口中的“后门“攻击吗?它真的有可能在现实中实现
- base64编码_几分钟看懂Base64编码原理
- PHP学习记录第一篇:Ubuntu14.04下LAMP环境的搭建
- HDU 2159 FATE (DP 二维费用背包)
- Jupyter Notebook入门攻略
- 【网络安全工程师面试合集】—如何利用Http协议入侵网站
- Linux 基础——ls 命令
- 表达式求值详解(C++)
- python 和 的区别_Python中is和==的区别
- 【中级篇】Linux下搭建MySQL数据库系统
- 阶乘浅析poj1150 3406 zoj1222 2358
- Verilog初级教程(10)Verilog的always块
- Visual FoxPro权威指南写作原稿及光盘下载
- Python pandas DataFrame排序与去重操作
- html5圆形图片自动旋转,纯CSS3圆形图片鼠标滑过旋转翻盖动画特效
- Halcon 3D create_pose
- 音视频基本概念和FFmpeg的简单入门(新手友好+FFmpeg资料分享)
- 加速度传感器灵敏度的几种表示方式