我的班级中有一个弧形的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);
答案 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
。