我正在开发我的第一个游戏应用程序,当用户触摸图像时,应用程序向用户显示消息(或在其他情况下执行其他操作)。 我的照片是非几何形状(例如动物照片),背景为100%透明
(我使用Photoshop并以PNG格式保存。)
我的问题是,当用户触摸动物形状本身(不是imageview的透明背景/角落)时,我需要它作出反应(并显示消息,......) 。
我使用this question中提供的解决方案来确定触摸的像素是否透明,但它不能按照我需要的方式工作。这是MainActivity.java中我的onCreate()方法的一部分:
tempIV=(ImageView)findViewById(R.id.birdIV);
final Bitmap bitmap = (BitmapDrawable)tempIV.getDrawable()).getBitmap();
tempIV.setOnTouchListener(new View.OnTouchListener(){
@Override
public boolean onTouch(View v, MotionEvent event){
int x = (int)event.getX();
int y = (int)event.getY();
int transparency = bitmap.getPixel(x,y);
if (transparency == 0)
{ //Do nothing
return false;}
else {
Toast.makeText(MainActivity.this,
"This is an animal!", Toast.LENGTH_LONG).show();
}
return true;
}
});
我该怎么办?
答案 0 :(得分:1)
尝试使用: -
if (bitmap.getPixel(x, y) == Color.TRANSPARENT)
{
return false; //don't react
}
else
{
return true; //do something like intent
}