2011-12-23 7 views
1

私はxmlファイルでこの形状を定義しており、コードで作成する必要がありますが、切り詰められています。Android:コードでこのリソースシェイプを作成するにはどうすればよいですか?

私はRoundRectShapeをインスタンス化し、プロパティをxmlのプロパティに設定すると仮定しますが、プロパティはうまく整列しません。

RoundRectShape(float[] outerRadii, RectF inset, float[] innerRadii) 

私のxmlの形状は1つの半径、今RectFを持っている、とRoundRectShapeはパディングや色を設定するためのオプションはありませんか?

<shape xmlns:android="http://schemas.android.com/apk/res/android"> 
    <solid android:color="#00FFFFFF" /> 
    <stroke android:width="2dp" android:color="#FFFFFFFF" /> 
    <padding android:left="7dp" android:top="7dp" 
      android:right="7dp" android:bottom="7dp" /> 
    <corners android:radius="4dp" /> 
</shape> 

答えて

2

は、次の

サンプルコード

public class CustomDrawable extends ShapeDrawable{ 
    Paint fillpaint, strokepaint; 
    private static final int WIDTH = 2; 

@Override 
protected void onDraw(Shape shape, Canvas canvas, Paint paint) { 
    // TODO Auto-generated method stub 
// super.onDraw(shape, canvas, paint); 
    fillpaint = this.getPaint(); 
    strokepaint = new Paint(fillpaint); 
    strokepaint.setStyle(Paint.Style.STROKE); 
    //to set stroke width and color instead of <stroke android:width="2dp" android:color="#FFFFFFFF" /> 
    strokepaint.setStrokeWidth(WIDTH); 
    strokepaint.setARGB(255, 255, 255, 255); 

    shape.draw(canvas, fillpaint); 
    shape.draw(canvas, strokepaint); 

} 
} 
のようなカスタム描画可能siomethingを作成する必要があります
関連する問題