使用画布在单个活动中使用多个视图

时间:2010-11-07 14:24:35

标签: java android views android-activity

基本上我想要完成的是我想要一个可以传递位图的画布,用我的其他视图对象(按钮,文本视图等)显示在屏幕上。

我为画布视图创建了一个类(它还没有做太多):

public class Foo extends View {

    public Foo(Context context) {
        super(context);
    }

    @Override
    public void onDraw(Canvas canvas) {
        Paint paint = new Paint();
        paint.setStyle(Paint.Style.FILL);

        // draw a solid blue circle
        paint.setColor(Color.BLUE);
        canvas.drawCircle(20, 20, 15, paint);
    }
}

现在这是我的主要活动:

public class Main extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        Button switchLeft = (Button) findViewById(R.id.switch_left);
        switchLeft.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
               //TODO 
            }
        });

        Button switchRight = (Button) findViewById(R.id.switch_left);
        switchRight.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                //TODO
            }
        });

        Foo myCanvas = new Foo(this);
        setContentView(myCanvas);
    }
}

当我将setContentView调用到画布视图对象时,我的其余视图将从屏幕上消失。如何在不丢失其余视图的情况下调用此视图对象?

感谢。

1 个答案:

答案 0 :(得分:1)

您可以在“main”-layout

中引用自己的观点
...
<xxx.yyy.Foo
        android:background="@drawable/red"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>