0
私は最初のゲームアプリで作業しています。ユーザーが画像に触れると、アプリはユーザーにメッセージを表示します(または他の状況では他のことも行います)。 私の写真は100%透明な背景画像ビューの不透明部分に触れるイベントを処理する
(私はフォトショップを使用してPNG形式でそれらを救った。)
で(例えば動物の写真のための)非幾何学的形状です私の問題は、私は必要だということですそれは反応する(そして、メッセージを表示する...)動物の形自体(イメージビューの透明な背景/コーナーではない)がユーザーによってタッチされたとき。
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;
}
});
どうすればよいですか?これを使用して
があまりにもこれを試してみましたが、ちょうど私自身のコードのように、それはユーザーのクリックにアプリの反応のように見えるではありません。 100%の透過ピクセルが不透明であると見なしたり、その逆の場合もあります。 – Atieh