上文已经绘制了圆环,但仔细分析就知,如果只需要圆环的话,那么只绘制圆环就可以,不用画内圆和外圆了。事实证明也是如此。
但是要做成和下面的圆环透明度不一的效果上面的方法还是达不中:

用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实现图片旋转和缩放功能.zip
在Android开发中,有时我们需要在界面上添加一些自定义的图形元素,比如在ImageView上绘制一个圆环。本文将详细讲解如何在ImageView上实现这一功能。我们主要关注三种方法中的第一种,即通过画布(Canvas)进行绘制...
本教程将详细讲解如何通过自定义属性来实现ImageView的透明度渐变效果。首先,我们从自定义属性的创建开始。 一、创建自定义属性 在Android项目中,自定义属性通常放在res/values/attrs.xml文件中。如果该文件不...
本文将深入探讨如何通过自定义ImageView来实现旋转动画,让图片在XYZ轴上动态展示,为用户带来更加生动的视觉效果。 首先,我们需要创建一个新的类,继承自Android的内置ImageView类。这个新类将作为我们自定义的...
本文将探讨如何在Android中实现两种独特的视觉效果:光点模糊渐变的自旋转圆环特效以及水滴波纹特效。这两种特效能为你的应用程序增添动态美感,提升用户的交互体验。 首先,我们来看自旋转圆环特效。这种效果通常...
在Android开发中,Canvas是图形绘制的核心工具,它允许开发者在Bitmap或Surface上进行各种复杂的图形操作,包括绘制文本、线条、形状以及图片等。本篇文章将深入探讨如何在Canvas的指定区域内绘制图片,这对于创建...
这个"Android ImageView控件缩放和旋转图片源码.zip"压缩包提供了关于如何实现ImageView对图片的缩放和旋转功能的示例代码。通过分析这些源码,我们可以深入理解Android图像处理的相关技术。 1. 图片资源加载: 在...
本文实例讲述了Android开发之图片旋转功能实现方法。分享给大家供大家参考,具体如下: 在Android中进行图像旋转需要使用Matrix,它包含了一个3*3的矩阵,专门用于进行图像变换匹配。Matrix ,中文里叫矩阵,高等...
而在onDraw()方法中,Canvas会使用ImageView的Matrix对Bitmap进行绘制,从而实现了图片的缩放和旋转效果。 对于ImageView的优化,Android提供了inSampleSize参数,用于减小Bitmap的加载大小,减少内存消耗。通过...
《Android开发视频教程》第十五集:ImageView实现适屏和裁剪图片的功能.zip
在Android中,实现圆形图片通常通过重写`onDraw()`方法,裁剪绘制的矩形区域为圆形,或者利用`Shader`的`BitmapShader`类来实现。 要让图片持续匀速旋转,我们需要利用Android的动画系统。Android提供了多种动画...
在Android开发中,为了实现独特的视觉效果,我们经常需要对默认控件进行扩展,自定义控件就是一种常见的做法。本篇文章将详细讲解如何在Android中通过自定义一个ImageView来实现图片的圆形遮罩效果。这个功能对于...
在Android开发中,ImageView是用于显示图像的常见组件。然而,仅靠基本的ImageView功能,我们往往无法满足一些复杂的交互需求,比如用户可以对图片进行拖动和双指缩放。这种功能通常需要借助Matrix类来实现。Matrix...
本示例项目“Android 自定义圆环动画切换、流式布局的实现”旨在教你如何利用自定义组件和动画来打造这样的效果。下面将详细解释其中涉及的关键技术点。 首先,我们关注的是“自定义的圆环ImageView”。在Android中...
以上就是如何利用ImageView和AnimationDrawable实现类似于ProgressBar旋转效果的基本流程。通过这种方式,我们可以根据自己的需求定制各种动画效果,提升用户体验。在实际项目中,可能还需要考虑兼容性、性能优化等...
《Android开发视频教程》第十七集:ImageView从网络上获取图像.zip
在Android应用开发中,UI设计是至关重要...通过自定义View和利用Android的图形绘制API,我们可以实现各种复杂的界面效果,提升应用的视觉吸引力。在实际开发中,记得根据项目需求调整代码和样式,使其更符合设计规范。