2013-01-10 98 views
1

我在我的課堂上有一個弧的形式ShapeDrawable對象。如何在Android中使用漸變繪製漸進環?

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); 

回答

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