在android上绘制多个视图

时间:2011-12-28 16:42:34

标签: android view android-canvas

我发现了类似的问题,但没有一个能够正确回答我的问题。

我有一个视图的课程。

public class Actor extends View {
private ShapeDrawable drawable;

int x = 0;
int y = 0;
int width = 100;
int height = 40;

public Actor(Context context) {
    super(context);

    drawable = new ShapeDrawable(new OvalShape());
    drawable.getPaint().setColor(0xff74AC23);
    drawable.setBounds(x, y, x + width, y + height);
}

@Override
public void onDraw(Canvas canvas){
    super.onDraw(canvas);
    drawable.draw(canvas);
}

}

我现在要做的是在Android屏幕上绘制此视图的多个实例。我可以在一项活动中绘制一个:

 @Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    Dimension actor1 = new Actor(this);
    setContentView(actor1);
}

我的目标是绘制它的多个实例,当然还有其他x和y参数,因此它们不会重叠。我不想先将视图转换为位图,以便在画布中获取它。

1 个答案:

答案 0 :(得分:0)

首先 - 创建一些布局,然后调用setContentView(yourlayout)。

然后,使用这样的方法:

setContentView(R.layout.main);
FrameLayout mainLayout=(FrameLayout) findViewById(R.id.mainLayout);
Dimension actor1 = new Actor(this);
mainLayout.addView(actor1);