如何在自定义 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 的位图缓冲区。您只能在其中绘制其他位图或像素,不能插入对象或小部件。
有一些解决方案:
按照 Nikolay 的建议,使用 FrameLayout 并创建两个层( View ),第一个是您的自定义 View ,第二个是 LinerView 或 RelativeView,它们将位于顶部,您可以在其中放置按钮等等
在 Canvas 上绘制按钮图像,然后在您的自定义 View 中使用 onTouchEvent 并测试触摸的坐标,然后做一些事情...这里是 onTouchEvent 的示例:Make certain area of bitmap transparent on touch
关于Android 绘图按钮到带有自定义 View 的 Canvas ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7048103/