Android 绘图按钮到带有自定义 View 的 Canvas ?

标签 android button canvas custom-view

如何在自定义 View 中的 Canvas 顶部绘制按钮? (最好在中间右侧)在执行 button.draw(canvas) 之前我必须调用什么吗?

    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);
    }
    }

谢谢你的时间

最佳答案

您不能将按钮插入到 Canvas 中。 Canvas 是位图的接口(interface)或 View 的位图缓冲区。您只能在其中绘制其他位图或像素,不能插入对象或小部件。

有一些解决方案:

  1. 按照 Nikolay 的建议,使用 FrameLayout 并创建两个层( View ),第一个是您的自定义 View ,第二个是 LinerView 或 RelativeView,它们将位于顶部,您可以在其中放置按钮等等

  2. 在 Canvas 上绘制按钮图像,然后在您的自定义 View 中使用 onTouchEvent 并测试触摸的坐标,然后做一些事情...这里是 onTouchEvent 的示例:Make certain area of bitmap transparent on touch

关于Android 绘图按钮到带有自定义 View 的 Canvas ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7048103/

相关文章:

android - 如何在不使用主键时进行插入或替换

android - Xamarin (Android) 中资源文件中按钮的 SetBackgroundColor

javascript - 在 JavaScript 中清除文本框时出现问题

javascript - 我如何让这个 javascript 应用于所有这些按钮?

java - 在 Canvas 上看不到圆圈

android - .co.uk域名的build.gradle软件包名称

Android: phonegap/cordova: 应用运行时切换全屏模式

javascript - 从玩家向鼠标发射子弹?

android - 在 Android 中,从外部代码控制(播放/暂停)媒体播放器

javascript - 优化html5 Canvas 游戏