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?
希望这就是你想要的:)
我正在努力做到这一点,所以当您单击此 "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?
希望这就是你想要的:)