圆形进度条
来源:互联网 发布:属于结构化数据的是 编辑:程序博客网 时间:2024/04/28 22:06
1 先上图
2 思路,使用drawArc+属性动画 ObjectAnimation。
ObjectAnimation:直接对任意对象的任意属性进行动画操作。
比如
- ObjectAnimator
animator = ObjectAnimator.ofFloat(textview, "alpha", 1f, 0f, 1f); - animator.setDuration(5000);
- animator.start();
注:要是animator.start();不行可调用View.startAnimation
通过自定义一个View,在View中设定一个参数 progress(表示圆弧的角度),在创建一个setProgress(int progress)方法,被ObjectAnimation,调用。
代码:
自定义View代码如下:
public class MyCircleProgressAnimationView extends View {private int progress;public MyCircleProgressAnimationView(Context context, AttributeSet attrs) {super(context, attrs);// TODO Auto-generated constructor stub}public int getProgress() {return progress;}public void setProgress(int progress) {this.progress = progress;invalidate();}// 创建属性动画会调用setProgress方法public void drawCicleAnimation(int swapArc) {ObjectAnimator objectAnimator = ObjectAnimator.ofInt(this, "progress",1, swapArc);objectAnimator.setDuration(5000);// 加速器,从慢到快到再到慢objectAnimator.setInterpolator(new AccelerateDecelerateInterpolator());objectAnimator.start();}@Overrideprotected void onDraw(Canvas canvas) {// TODO Auto-generated method stubsuper.onDraw(canvas);Paint paint = new Paint();paint.setAntiAlias(true); // 设置画笔为无锯齿paint.setColor(Color.GREEN); // 设置画笔颜色canvas.drawColor(Color.WHITE); // 白色背景paint.setStrokeWidth((float) 3.0); // 线宽paint.setStyle(Style.STROKE);System.out.println(this.getMeasuredWidth() + ":"+ this.getMeasuredHeight());;canvas.drawArc(new RectF(10f, 10f, (float)this.getMeasuredWidth()-10f,(float)this.getMeasuredHeight()-10f), 0, progress, false, paint);}@Overrideprotected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {System.out.println("onMeasure"+widthMeasureSpec + ":"+ heightMeasureSpec);//设置为正方形heightMeasureSpec=widthMeasureSpec;super.onMeasure(widthMeasureSpec, heightMeasureSpec);};
另一种思路 Handler+自定义View(canas.drawArc() :)
参考 属性动画完全解析:http://blog.csdn.net/guolin_blog/article/details/43536355
0 0
- 圆形进度条
- 圆形进度条
- 圆形进度条
- 圆形进度条
- 圆形进度条
- 圆形进度条
- 圆形进度条
- 圆形进度条
- 圆形进度条
- 圆形进度条
- 圆形进度条
- 圆形进度条
- 自定义圆形进度条,绘制进度条
- ProgressBar进度条(圆形进度条|水平进度条)
- android 自定义圆形进度条
- Android圆形进度条
- android 环形进度条 圆形
- 自定义的圆形进度条
- linux下定时执行sql语句
- 第四天 魔小灯(蓝牙智能灯)1
- 数据结构C++语言描述专题系列 (一) 绪论
- 【LeetCode】191Number of 1 Bits
- 谁是谁的谁 写的真的很美
- 圆形进度条
- 性能测试-性能测试工具工作原理
- Java读书笔记十五(Java中的内部类)
- 友勤签约中芝软件系统(上海)有限公司Oracle Crystal Ball Suite软件项目
- 分页存储过程
- Mac上Apache与PHP的配置
- Android Activity的生命周期
- Spring使用Cache
- Eclipse-----切换SVN账号