2010-10-13 64 views
0

我已經創建了一個畫布在android和裏面,我有多個位圖images.not我想讓這些圖像點擊能夠。可點擊的圖像內的畫布

我曾嘗試下面的事情至今..

我試圖在圖像視圖中添加位圖作爲ImageView的有setOnClickListner 但我認爲ImageView的不能添加到畫布,所以我放棄了這個想法。因爲即使Bitmap本身也沒有點擊事件。

回答

1

如果你想使用畫布,請記住它是一個低級別的繪圖機制。

因此,您需要自己實現點擊邏輯。

  • 捕獲任何傳入TouchEvent的座標。
  • 如果TouchEvent是「下壓」(手指按下)或「上擡」(手指鬆開),根據您的選擇,將其視爲點擊。
  • 將點擊事件座標與每個附加圖像的邊界框進行比較,以查找觸摸了哪個圖像。在重疊的情況下考慮z-索引。
  • 觸發一個onClickListener。

您還必須保持所有圖像的座標和相應的onClickListeners在內存中的某處。

其他解決方案:

使用佈局,可能是一個RelativeLayout的,在其中添加ImageViews兒童。

+0

哦,這是一個相當繁瑣的過程,你有任何替代解決方案嗎? – Hunt 2010-10-13 13:10:56

+0

如果我會用你的方法去,那麼我將如何得到/計算畫布內圖像的邊界框? – Hunt 2010-10-13 17:22:25

+0

是的,這是一個繁瑣的過程。按照這個過程,你從頭開始編寫自定義視圖。 例如,您可以測量每個添加圖像的邊界框並將其存儲在ArrayList中。 還有另一種解決方案,我編輯了答案。 – 2010-10-14 07:39:39

-1

我相信你問類似的東西:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="@drawable/background" 
    android:orientation="vertical" > 

    <ImageView 
     android:id="@+id/clickable_image" 
     android:src="@drawable/ic_image" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center" 
     android:clickable="true" 
     /> 
</LinearLayout> 

現在,你有你的背景「設置整個視圖作爲壁紙」在你自己的話,然後你有你的形象,這是點擊。在你的代碼中,你實現了onClickListener,並將它附加到你的ImageView,它會做你想做的任何事情。