【发布时间】:2014-11-05 12:43:31
【问题描述】:
我需要在android中画一个简单的形状
形状需要是圆形的,因为 ImageView 可绘制,创建一个 ShapeDrawable 使用画布
我尝试了以下但没有工作
public class MyButton extends ImageButton {
private Drawable iconDrawable;
public MyButton(Context context) {
super(context);
}
public MyButton(Context context, AttributeSet attrs) {
super(context, attrs);
}
public MyButton(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
@Override protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
setImageDrawable(getIconDrawable());
}
/**
* just draw a simple circle
*
* @return
*/
public Drawable getIconDrawable() {
Shape shape = new Shape() {
@Override public void draw(Canvas canvas, Paint paint) {
paint.setColor(Color.RED);
paint.setStyle(Paint.Style.FILL);
canvas.drawCircle(0, 0, 20, paint);
}
};
ShapeDrawable drawable = new ShapeDrawable(shape);
return drawable;
}
}
【问题讨论】: