如何在自定义视图中在画布顶部绘制按钮? (最好在中间右侧)在执行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); } }
谢谢你的时间
解决方法
您无法在画布中插入按钮. Canvas是位图的一个接口或视图的位图缓冲区.您只能在其中绘制其他位图或像素,而不是插入对象或小部件.
有一些解决方案:
> Nikolay建议,使用FrameLayout并创建两层(视图),首先是您的自定义视图和第二个LinerView或RelativeView,它们将在顶部,您可以使用按钮等
>在Canvas上绘制一个buttun的图像,然后在自定义视图中使用onTouchEvent,并测试触摸坐标,然后执行某些… onTouchEvent的示例:Make certain area of bitmap transparent on touch