如何在Android中绘制带有样式描边和渐弱边缘的圆圈

时间:2014-08-05 16:02:44

标签: android fadein geometry ondraw radial-gradients

我想用Style:STROKE绘制一个圆圈。以下是我想要实现的图像。中心白色部分应该是透明的。

我尝试了以下代码

RadialGradient gradient = new RadialGradient((getRight() - getLeft())/ 2,(getBottom() - getTop()) / 2, (getRight() - getLeft()) / 2, new int[] { getResources().getColor(android.R.color.transparent), mCirclePaint.getColor()}, new float[] { 0.1f, 0.9f}, android.graphics.Shader.TileMode.CLAMP);
mCirclePaint.setShader(gradient);
canvas.drawCircle((getRight() - getLeft()) / 2, (getBottom() - getTop()) / 2,
            ((getRight() - getLeft()) / 2) - 10, mCirclePaint);

和paint定义为

 mCirclePaint = new Paint();
 mCirclePaint.setFlags(Paint.ANTI_ALIAS_FLAG);
 mCirclePaint.setStrokeWidth(20);
 mCirclePaint.setStyle(Paint.Style.STROKE);
 mCirclePaint.setARGB(255, colorEnums[5].getColorR(), colorEnums[5].getColorG(), colorEnums[5].getColorB());

inner_fading_circle

我该怎么做...我的代码有什么问题?

1 个答案:

答案 0 :(得分:0)

您可以使用RadialGradient。在构造函数public RadialGradient (float x, float y, float radius, int[] colors, float[] positions, Shader.TileMode tile)中,您可以看到float [] position片段是颜色开始和停止的时间。只需根据需要设置渐变,将其应用于Paint,然后canvas.drawCircle()。应该做的伎俩。