按钮在Canvas中不起作用。您需要更改/添加呼叫者的消息?按钮已创建,但在您按下时没有响应。画布是否可能在按钮上?
public class ButtonInCanvas extends AppCompatActivity implements View.OnClickListener {
Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
button = new Button(ButtonInCanvas.this);
button.setOnClickListener(this);
button.setText("OK!");
setContentView(new BtInCanvas(ButtonInCanvas.this));
}
public class BtInCanvas extends View {
public BtInCanvas(Context context) {
super(context);
}
public void onDraw(Canvas canvas){
button.layout(50,50,300,300);
button.draw(canvas);
}
}
@Override
public void onClick(View v) {
Toast.makeText(this,"OK!",Toast.LENGTH_LONG).show();
}
}
答案 0 :(得分:0)
请参阅链接Android drawing button to canvas with custom view?
“您无法在画布中插入按钮。画布是位图的接口或视图的位图缓冲区。您只能在其中绘制其他位图或像素,而不是插入对象或小部件。
有一些解决方案:
正如Nikolay建议的那样,使用 FrameLayout 并创建两个图层(视图),首先是自定义视图,第二个是LinerView或RelativeView,它们将位于顶部,您可以在其中拥有按钮等
在Canvas上绘制一个buttun的图像,然后在自定义视图中使用 onTouchEvent 并测试触摸的坐标,然后执行某些操作...这里的onTouchEvent示例:{ {3}}“