2015-10-13 84 views
-1

意外的是,我無法在互聯網上找到如何創建一個沒有方形邊界的圖像對象,以便onClick事件應該只在用戶點擊圖像時觸發。Android Studio如何創建一個沒有方形邊界的圖像?

onClick event should not fire up when a user click at this point outside the image

onClick event should only fire up when a user click at a point inside the image

所有的途徑和方法有很大的歡迎。謝謝。

+0

即使你可以得到一個沒有方形邊框的圖像,你放入的imageview仍然是方形的 – tyczj

+2

根據定義,圖像是矩形。 – njzk2

+0

對於一個例子,在html中,我們可以使用svg對象來創建圖像,以便該對象的形狀與圖像相同,沒有方形邊界,現在我已經嘗試在android studio中使用svg,並且仍然存在不可見的方塊邊界,如果點擊圖像外點擊事件將觸發 – Charas

回答

1

如果您用作ImageView,您可以設置:background =「@ null」,希望這可以幫助您。

+0

nah,doesn沒有工作,onClick事件仍然發射時,它的點擊圖像以外.. – Charas

+0

對不起,我可憐的英語,我誤解了你。這可以通過定義View的子類並重寫onClickEvent()方法來解決。當點擊圖像時,獲取被點擊的點的顏色值,如果一個顏色值爲綠色,則響應該事件。如果全部透明,則停止它並返回。 –

+0

謝謝你,這似乎會工作,你能指導我的方法來獲得點的顏色值?它是getSolidColor()方法嗎? – Charas

0

這是從其他的博客樣本:

@Override 

public boolean onTouchEvent(MotionEvent event) { 

    int action = event.getAction(); 

    if(action != MotionEvent.ACTION_DOWN) { 

     return super.onTouchEvent(event); 

    } 

    int x = (int)event.getX(); 

    int y = (int)event.getY(); 

    if(width == -1 || height == -1) { 

     Drawable drawable = ((StateListDrawable)getBackground()).getCurrent(); 

     bitmap = ((BitmapDrawable)drawable).getBitmap(); 

     width = getWidth(); 

     height = getHeight(); 

    } 

    if(null == bitmap || x < 0 || y < 0 || x >= width || y >= height) { 

     return false; 

    } 

    int pixel = bitmap.getPixel(x, y); 

    if(Color.TRANSPARENT == pixel) { 

     return false; 

    } 

    return super.onTouchEvent(event); 

} 

這就是博客:click here

的博客意識到,點擊Chrome瀏覽器圖標的不同部分的功能,加深其被點擊的部分的顏色,在這裏該事件是通過判斷顏色來回應的。

晚安!

+0

謝謝你的幫助,我會試試這個方法。 – Charas

相關問題