我想用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());
我该怎么做...我的代码有什么问题?
答案 0 :(得分:0)
您可以使用RadialGradient。在构造函数public RadialGradient (float x, float y, float radius, int[] colors, float[] positions, Shader.TileMode tile)
中,您可以看到float [] position片段是颜色开始和停止的时间。只需根据需要设置渐变,将其应用于Paint
,然后canvas.drawCircle()
。应该做的伎俩。