Android绘图按钮到自定义视图的画布?

unk*_*one 11 android canvas button custom-view

如何在自定义视图中在画布顶部绘制按钮?(最好是在中间右侧)在做button.draw(画布)之前是否有必须调用的东西?

    public class MyClass extends View {
    public Simulation(Context context) {
            super(context);
            pauseButton.setText("TestButton");
            pauseButton.setClickable(true);
            pauseButton.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {
            Log.i(TAG, "Button Pressed!");
            }
            });
    public onDraw(Canvas canvas) {
           super.onDraw(canvas);
           pauseButton.draw(canvas);
    }
    }
Run Code Online (Sandbox Code Playgroud)

谢谢你的时间

Lum*_*mis 15

您无法在画布中插入按钮.Canvas是位图的接口或视图的位图缓冲区.您只能在其中绘制其他位图或像素,而不能插入对象或窗口小部件.

有一些解决方案:

  1. 正如Nikolay建议的那样,使用FrameLayout并创建两个图层(视图),首先是自定义视图,第二个是LinerView或RelativeView,它们将位于顶部,您可以在其中使用按钮等

  2. 在Canvas上绘制一个buttun的图像,然后在自定义视图中使用onTouchEvent并测试触摸的坐标,然后做一些事情......这里的onTouchEvent示例:触摸时使某个位图区域透明


Nik*_*kov 6

为什么需要自己画按钮?使用 FrameLayout 并简单地将按钮覆盖在您的自定义视图上。