2015-02-06 64 views
0

我想要定義一個全屏的ImageView,就像一個房間的圖片,並且讓我們說圖片在牆上有一個明星,它做了一些事情。我想定義一個透明的按鈕,讓那個明星可以點擊,但只能是明星的形狀。我在互聯網上用「熱點」收集了一些東西,但我真的不知道如何實施它們,如果可以的話。Android在圖像中的形狀窗體的可點擊區域

+0

可能是該庫將幫助您https://github.com/catchthecows/AndroidImageMap – Muthu 2015-02-06 10:58:05

回答

0

對於所有情況都沒有簡單的方法。在ImageView小部件中,您應該在觸摸位置測試像素顏色,然後接受觸摸並處理它或放棄觸摸事件。

簡單的丟棄觸摸事件的方法是將自定義的OnTouchListener設置爲ImageView,如果觸摸座標超出星形,則 返回true。

難點在於瞭解觸摸事件可以被刪除。如果你有簡單的形狀,你可以使用一些數學來測試座標是在你的形狀之外還是之內。通用的方法是到draw a view to bitmap並測試像素顏色。如果它是透明的 - 丟棄事件,如果固體處理。

我沒有代碼,谷歌,我想你能找到一些)

0
  • ImageView的透明背景,是這樣的:

    <ImageView 
        android:id="@+id/img_background" 
        android:layout_width="match_parent" 
        android:layout_height="match_parent" 
        android:src="@drawable/img_background" 
        android:background="@android:color/transparent" /> 
    
  • 的ImageButton與圖標明星

    <ImageButton 
         android:id="@+id/img_star" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:layout_centerInParent="true" 
         android:src="@drawable/icon_star" 
         android:background="@android:color/transparent" /> 
    
  • ,你應該在透明的背景也

您的星形圖標
+0

我不想使用該星的ImageView但我想要一個形狀採取形式的明星,我不知道像素檢測的東西採取這種形式,如果工作 – 2015-02-06 11:39:23

+0

看起來修改答案,你不會看到按鈕背景,但只是明星 – Xcihnegn 2015-02-06 11:43:26