4

私はこのxmlを持っています。

<?xml version="1.0" encoding="UTF-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">  
    <item android:drawable="@drawable/back" />
    <item>
        <shape>
            <solid/>
            <stroke android:width="1dip" android:color="#25786" />
            <corners android:radius="10dip"/>
            <padding android:left="0dip" android:top="0dip" 
                     android:right="0dip" android:bottom="0dip" />
        </shape>
    </item> 
</layer-list> 

今、私はコードを介してそれをやっています:

Drawable[] layers = new Drawable[2];

    ShapeDrawable sd1 = new ShapeDrawable(new RectShape());
    sd1.getPaint().setColor(0xFFFFFFFF);
    sd1.getPaint().setStyle(Style.STROKE);
    sd1.getPaint().setStrokeWidth(1);

    layers[0] = sd1;

    LayerDrawable composite = new LayerDrawable(layers);

しかし、私はそれをコーディングすることができず<corners android:radius="10dip"/><item android:drawable="@drawable/back" />

どうやってするの?

編集1

Drawable[] layers = new Drawable[2];

ShapeDrawable sd1 = new ShapeDrawable(new RectShape());
sd1.getPaint().setColor(0xFFFFFFFF);
sd1.getPaint().setStyle(Style.STROKE);
sd1.getPaint().setStrokeWidth(1);
sd1.getPaint().setPathEffect(new CornerPathEffect(10));

layers[1] = sd1;
layers[0] = getResources().getDrawable(R.drawable.pie_chart_back);

LayerDrawable composite = new LayerDrawable(layers);
4

2 に答える 2

5

XML と同様に、Drawable1 つではなく 3 つの が必要です。1 つは他のLayerDrawableものを含む です。欠落しているもう1つは、にBitmapDrawable依存している可能性があり@drawable/backます。

探しているコーナー効果は、 のにCornerPathEffectあります。を参照してください。DrawablePaintPaint.setPathEffect

于 2013-04-22T08:53:56.367 に答える