1
我使用Android工作室,並且我擁有透明背景的圖像。每當我點擊它,它會帶我到另一個活動。但即使當我點擊圖像的透明部分時,它也會將我帶到其他Activity。 是否有可能使非透明部分可點擊(或可觸摸)並且透明部分不可點擊?使圖像的透明部分不可點擊
我使用Android工作室,並且我擁有透明背景的圖像。每當我點擊它,它會帶我到另一個活動。但即使當我點擊圖像的透明部分時,它也會將我帶到其他Activity。 是否有可能使非透明部分可點擊(或可觸摸)並且透明部分不可點擊?使圖像的透明部分不可點擊
是的,這是可能的,但它變得比添加OnClickListener困難得多。
訣竅是使用Touch監聽器而不是點擊,然後在DOWN或UP事件中找到位置,然後使用一些簡單的數學計算出它是否是透明區域(如果設計是簡單的),或者做一些更復雜的東西來找出中心的像素值。
new View.OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
If (event.getAction() == MotionEvent.ACTION_DOWN) {
final int x = (int) event.getX();
final int y = (int) event.getY();
//now map the coords we got to the
//bitmap (because of scaling)
ImageView imageView = ((ImageView)v);
Bitmap bitmap =((BitmapDrawable)imageView.getDrawable()).getBitmap();
int pixel = bitmap.getPixel(x,y);
//now check alpha for transparency
int alpha = Color.alpha(pixel);
If (alpha != 0) {
//do whatever you would have done for your click event here
}
}
return true; //we've handled the event
}
}
請顯示您所指的圖片和/或XML。你有一個自定義的按鈕背景? –
你有沒有想到這一點,並有一個職位的答案?如果其他人沒有足夠的幫助你接受他們,你可以發佈你自己的答案,但是接受答案是很好的,所以有同樣問題的其他人會發現它 –
是的,我通常接受答案,就像我在這裏忘了它。你收到的答案確實很好。 ty:D – Iluvpresident