如何在Android中使用渐变绘制渐进式环?

时间:2013-01-10 21:43:10

标签: android automatic-ref-counting gradient shapedrawable

我的班级中有一个弧形的ShapeDrawable对象。

ShapeDrawable progressArc = new ShapeDrawable(new ArcShape(120, 12));

现在我想对颜色使用径向渐变效果,并且只显示一个圆环而不是填充圆弧。 Android SDK是否提供此功能?

目前使用以下代码,我在圆圈上得到一个渐变。

progressArc.setIntrinsicHeight(500);
progressArc.setIntrinsicWidth(500);

Shader shader1 = new LinearGradient(5, -5, 35, 0, new int[] { 0xFF33B5E5,0xFFFFFFFF }, null, Shader.TileMode.MIRROR);
progressArc.getPaint().setShader(shader1);
progressArc.getPaint().setStrokeWidth(1);
progressArc.getPaint().setColor(Color.RED);
progressArc.getPaint().setStyle(Paint.Style.FILL_AND_STROKE);

1 个答案:

答案 0 :(得分:4)

您可以使用SweepGradient获取径向渐变:

Shader s = new SweepGradient(0, 0, new int[] { 0xFF33B5E5,0xFFFFFFFF }, null);
//or if you only use two colors:
Shader s = new SweepGradient(0, 0, 0xFF33B5E5, 0xFFFFFFFF);

为避免填写,只需使用Paint.Style.STROKE样式,并使用适当的strokeWidth