android 自定义view二
2015-08-23 19:28
363 查看
还是照着hongyong的博客来学习
不过遇到几个问题,转几个圈之后会停下来,不知道为什么
先分析下代码逻辑
一个线程不断更新progress然后重绘,
当progress = 360度的时候,说明画完一个圈了
这个时候把progress置0,修改isNext
isNext实际上就是标明该画哪个颜色的圆,比如,先画红的,再画蓝的
先画一个圆,再画圆弧
似乎没问题,但是调试发现,在一段时间后,ondraw就不在调用了(postinvalidate还是会跳到这) 不知道为什么
// 画圆弧
canvas.drawArc(oval, 0, mProgress, false, mPaint);这个方法的参数是
public void drawArc(RectF oval, float startAngle, float sweepAngle,boolean useCenter, Paint paint)
:指定圆弧的外轮廓矩形区域。
startAngle: 圆弧起始角度,单位为度。
sweepAngle: 圆弧扫过的角度,顺时针方向,单位为度。
useCenter: 如果为True时,在绘制圆弧时将圆心包括在内,通常用来绘制扇形。
paint: 绘制圆弧的画板属性,如颜色,是否填充等。
如果第二个参数是0,那么正好是习惯上的90度,不知道为什么会这样,在android相机预览也有这个角度偏转问题
设置为-90度,则正好是习惯上的角度
不过遇到几个问题,转几个圈之后会停下来,不知道为什么
先分析下代码逻辑
一个线程不断更新progress然后重绘,
当progress = 360度的时候,说明画完一个圈了
这个时候把progress置0,修改isNext
isNext实际上就是标明该画哪个颜色的圆,比如,先画红的,再画蓝的
先画一个圆,再画圆弧
似乎没问题,但是调试发现,在一段时间后,ondraw就不在调用了(postinvalidate还是会跳到这) 不知道为什么
// 画圆弧
canvas.drawArc(oval, 0, mProgress, false, mPaint);这个方法的参数是
public void drawArc(RectF oval, float startAngle, float sweepAngle,boolean useCenter, Paint paint)
:指定圆弧的外轮廓矩形区域。
startAngle: 圆弧起始角度,单位为度。
sweepAngle: 圆弧扫过的角度,顺时针方向,单位为度。
useCenter: 如果为True时,在绘制圆弧时将圆心包括在内,通常用来绘制扇形。
paint: 绘制圆弧的画板属性,如颜色,是否填充等。
如果第二个参数是0,那么正好是习惯上的90度,不知道为什么会这样,在android相机预览也有这个角度偏转问题
设置为-90度,则正好是习惯上的角度
相关文章推荐
- [转]android笔记--Intent和IntentFilter详解
- Android-基本控件(ProgressBar 和 ProgressDialog)
- Android Animation动画详解(一): 补间动画
- Android Animation动画详解(一): 补间动画
- # imageview scaleType属性说明
- Android通过代码模拟物理、屏幕点击事件
- Android binder 原理及实现机制<一>
- Android-基本控件(Spanner 下拉列表)
- android 组件EditText实例
- 直接拿来用!最火的Android开源项目(完结篇)
- 直接拿来用!最火的Android开源项目(二)
- android studio的annotation编译环境配置,适合小白
- 直接拿来用!最火的Android开源项目(一)
- android 组件Gallery实例
- Android尽量避免使用开发jpg图片
- Android基础入门教程——4.5.1 Intent的基本使用
- Android 自定义 HorizontalScrollView 打造再多图片(控件)也不怕 OOM 的横向滑动效果
- Handler类,有两个包,一个是java的,用于日志和消息,一个android,专用于消息.
- Android Studio新建项目
- Android - Hierarchical Parent 必须填写的解决办法