代码之家  ›  专栏  ›  技术社区  ›  user432209

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

  •  -1
  • user432209  · 技术社区  · 14 年前

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

    我为canvas视图创建了一个类,如下所示(它还没有做太多工作):

    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调用到canvas视图对象时,我的其余视图将从屏幕上消失。如何在不丢失其余视图的情况下调用此视图对象?

    谢谢。

    1 回复  |  直到 14 年前
        1
  •  1
  •   Mikpa    14 年前

    您可以在“主”布局中引用自己的视图

    ...
    <xxx.yyy.Foo
            android:background="@drawable/red"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"/>