2016-03-04 72 views
1

我使用Android工作室,並且我擁有透明背景的圖像。每當我點擊它,它會帶我到另一個活動。但即使當我點擊圖像的透明部分時,它也會將我帶到其他Activity。 是否有可能使非透明部分可點擊(或可觸摸)並且透明部分不可點擊?使圖像的透明部分不可點擊

+0

請顯示您所指的圖片和/或XML。你有一個自定義的按鈕背景? –

+0

你有沒有想到這一點,並有一個職位的答案?如果其他人沒有足夠的幫助你接受他們,你可以發佈你自己的答案,但是接受答案是很好的,所以有同樣問題的其他人會發現它 –

+1

是的,我通常接受答案,就像我在這裏忘了它。你收到的答案確實很好。 ty:D – Iluvpresident

回答

4

是的,這是可能的,但它變得比添加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 
    } 
}