Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/189.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何将侦听器添加到画布中的位图?(安卓)_Android_Canvas_Bitmap_Touch Event - Fatal编程技术网

Android 如何将侦听器添加到画布中的位图?(安卓)

Android 如何将侦听器添加到画布中的位图?(安卓),android,canvas,bitmap,touch-event,Android,Canvas,Bitmap,Touch Event,我在其他问题中读到了如何获得位图的位置以及如何定义OnTouchEvent,如下所示,但由于位图对象不可能设置侦听器,我必须怎么做 public boolean onTouchEvent(MotionEvent event){ int action = event.getAction(); int x = event.getX() // or getRawX(); int y = event.getY(); switch(action){ case MotionEvent.ACTION_DO

我在其他问题中读到了如何获得位图的位置以及如何定义OnTouchEvent,如下所示,但由于位图对象不可能设置侦听器,我必须怎么做

public boolean onTouchEvent(MotionEvent event){
int action = event.getAction();
int x = event.getX()  // or getRawX();
int y = event.getY();

switch(action){
case MotionEvent.ACTION_DOWN:
    if (x >= xOfYourBitmap && x < (xOfYourBitmap + yourBitmap.getWidth())
            && y >= yOfYourBitmap && y < (yOfYourBitmap + yourBitmap.getHeight())) {
        //tada, if this is true, you've started your click inside your bitmap
    }
    break;
}
}
public boolean onTouchEvent(运动事件){
int action=event.getAction();
int x=event.getX()//或getRawX();
int y=event.getY();
开关(动作){
case MotionEvent.ACTION\u DOWN:
如果(x>=xOfYourBitmap&&x<(xOfYourBitmap+yourBitmap.getWidth())
&&y>=yOfYourBitmap&&y<(yOfYourBitmap+yourBitmap.getHeight()){
//塔达,如果这是真的,你已经开始在位图中点击了
}
打破
}
}

您必须在
视图中绘制位图(例如,普通
视图
和绘制
位图
作为背景或
图像视图的源/图像
)。然后你可以将一个
onTouchListener
附加到这个
视图
,并在该侦听器中处理你的
onTouchEvent

…但是这样我就不能使用canvasI了,我不明白。你想用帆布做什么?在您的问题中,您只是想知道是否要单击正确的位置。我的类在画布上使用onDraw方法,我想在它绘制的位图上添加一个侦听器您的意思是覆盖视图的“公共布尔onTouchEvent(MotionEvent event)”和“protected void onDraw(canvas canvas)”方法?