Android 仅 java 中的可点击位图图像

Android clickable bitmap image in only java

我正在努力做到这一点,所以当您单击此 "Play" 位图时,它将 运行 其他代码,但我不知道如何检查它。

我试着把它画成

playX = WIDTH / 2;
        playY = HEIGHT / 2;
        Bitmap playButton = BitmapFactory.decodeResource(getResources(), R.drawable.play_button);
        playWidth = playX + playButton.getScaledWidth(canvas);
        playHeight = playY + playButton.getScaledHeight(canvas);

然后是触摸事件

@Override
public boolean onTouchEvent(MotionEvent event){
    if(event.getX() > playX && event.getX() < playWidth){
        if(event.getX() > playY && event.getY() < playHeight){
            System.out.println("Button Pushed");
        }
    }}

但它似乎不起作用我不知道是否有更好的方法来 运行 单击位图时编码? (我只使用 java class 而不是 xml)

其实你可以只使用imageView来保持播放图像并设置onClickListener功能来获得可点击的图像。

像这样:

ImageView imageView = findViewById(R.id.image_view_icon);
imageView.setImageResource(R.drawable.play_button);
imageView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    System.out.println("Button Pushed");
                }
            });

编辑:

正如评论中提到的,您正在使用 Canvas 绘图,请试试这个:

@Override
public boolean onTouchEvent(MotionEvent event) 
{
    int x=(int)event.getX();
    int y=(int)event.getY();
    if (drawable.getBounds().contains(x,y)  &&
        event.getAction()==MotionEvent.ACTION_DOWN) {
        System.out.println("Button Pushed");
        return true;
    }
    return false;
}

详情请参考这里How to make a bitmap using canvas clickable?

希望这就是你想要的:)