1

クラスに円弧の形の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);
4

1 に答える 1

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ください。

于 2013-01-10T22:15:39.523 に答える