Android开发:ImageView上绘制旋转圆环(透明度不同的旋转圆环,利用canvas.drawArc实现)
来源:互联网 发布:lars算法 编辑:程序博客网 时间:2024/05/19 12:12
但是要做成和下面的圆环透明度不一的效果上面的方法还是达不中:
用drawCircle不中了,经查android提供了绘制圆弧的函数drawArc,参考http://zhidao.baidu.com/question/469977150.html,也可以看这里http://blog.chinaunix.net/uid-23392298-id-3345789.html
canvas.drawArc(new RectF(0, 0, 128, 128), 0, 360, true, new Paint(Paint.ANTI_ALIAS_FLAG));参数1:圆的范围大小参数2:起始角度参数3:圆心角角度,360为圆,180为半圆参数4:中心参数5:画笔Paint,可以设置画线or填充,设置颜色,设置线的粗细等等第四个参数
最关键的是第一个参数RectF,在什么地方绘制圆弧就是由这个矩形的位置确定的。根据上文,这个RectF应该是内切圆弧的外圆(尽管没画,但还是有)。所以其左上点及右下点坐标为:
RectF rect2 = new RectF(center-(innerCircle + 1 +ringWidth/2),center-(innerCircle + 1 +ringWidth/2), center+(innerCircle + 1 +ringWidth/2), center+(innerCircle + 1 +ringWidth/2));
为了绘制出透明度不同的圆环分两部来绘制:
this.paint.setARGB(200, 127, 255, 212);
this.paint.setStrokeWidth(ringWidth);
//绘制不透明部分
canvas.drawArc(rect2, 180+startAngle, 90, false, paint);
canvas.drawArc(rect2, 0+startAngle, 90, false, paint);
//绘制透明部分
this.paint.setARGB(30, 127, 255, 212);
canvas.drawArc(rect2, 90+startAngle, 90, false, paint);
canvas.drawArc(rect2, 270+startAngle, 90, false, paint);
上面的代码当startAngle = 0时,绘制的是一个静态的透明度交替的圆弧。接着要让它转起来。增加代码:
startAngle+=10;
if(startAngle == 180)
startAngle = 0;
事实上后两句也可以不增加,仿照前文SurfaceView绘制旋转动画的例子用这种求余的思想,(rotate += 48) % 360,把上面角度也弄个%360,也是可以的。
剩下的事就是让这个东西循环执行了。在super.onDraw(canvas);这句代码后面加 invalidate();就可以了!透明圆环就转起来了。
- Android开发:ImageView上绘制旋转圆环(透明度不同的旋转圆环,利用canvas.drawArc实现)
- Android开发:ImageView上绘制旋转圆环(透明度不同的旋转圆环,利用canvas.drawArc实现)
- ImageView上绘制旋转圆环(透明度不同的旋转圆环,利用canvas.drawArc实现) .
- Android开发:Invalidate和postInvalidate刷新View的区别及应用-----ImageView绘制旋转圆环(二)
- Android开发:在ImageView上绘制圆环
- ImageView 圆环旋转(二)
- ImageView 圆环旋转
- Android开发:在ImageView下绘制圆环
- 自动旋转的圆环
- 绕中心旋转的圆环
- canvas绘制圆环进度条
- canvas绘制圆环进度条
- CSS3+js实现简单的旋转圆环时钟效果实例
- 立体旋转(滚动圆环)
- 自动旋转渐变圆环
- Android——实现光点模糊渐变的自旋转圆环特效
- canvas 绘制动态圆环进度条
- Canvas绘制渐变圆环图
- linux 子系统详述和子系统结构分系
- check sqlserver is alive
- 第四周 项目二:三角形类(内置成员函数)
- 安装和使用花生壳(linux)
- 整型
- Android开发:ImageView上绘制旋转圆环(透明度不同的旋转圆环,利用canvas.drawArc实现)
- C++中的const限定符
- sslstrip+ettercap 对HTTPS/SSL进行攻击
- DOS命令大全
- 浮点
- C++里面是不是所有的动作都是main()引起的?
- C#转java又遇到的坑爹subString
- C++ const 的全面总结
- 批量上传SAP FI凭证上的附加的Note