2011-09-28 42 views
2

我有一個自定義視圖,我正在繪製很多位圖,如何在我的自定義視圖中爲畫布中的位圖設置監聽器...?

現在我想在用戶點擊它時更改圖像位圖。

如何做到這一點......?

這裏是我的自定義視圖的onDraw方法。

public void onDraw(Canvas canvas) { 

     super.onDraw(canvas); 
     Bitmap mBitmap = null; 

     int x = row * 20; 
     int y = clm * 20; 
     System.out.println("the x=" + x + "y=" + y); 
     int counter = 0; 
     for (int a = 0; a <= x; a += 20) 
      for (int b = 0; b <= y; b += 20) { 
       mBitmap = BitmapFactory.decodeResource(getResources(),R.drawable.test); 
       canvas.drawBitmap(mBitmap, a, b, null); 
       counter++; 
      } 
    } 

回答

0

要使多個位圖可點擊,您需要使用ViewGroup類,因爲OnClickListener已實現到視圖。

UPDATE

你一定要明白的觀點裏面去佈局。當您在屏幕上看到5個按鈕時,它們是Layout(ViewGroup)中的5個視圖。您添加的聽衆位於視圖上。如果您想要點擊多個位圖,則需要將圖像製作爲圖像並將其添加到佈局中。如果您想按特定順序排列它們,您需要創建一個自定義視圖組。使用自定義視圖,您只能將點擊設置爲整個視圖而不是視圖的一部分。也許你可以覆蓋onTouch事件的視圖,並捕獲觸摸的x,y座標,並找出通過大量計算點擊的部分。但那是一個很大的黑客和觀點組是做事的自然方式。

+0

我試過這個,但..沒有位圖出現在視圖中... – Noby

+0

您需要將您的位圖放入圖像中,然後將圖像放入佈局(ViewGroup )。聽衆然後設置在imageviews – blessenm

+0

我的自定義視圖沒有任何佈局。 – Noby

0
View.SetOnClickListner() 

適用於任何瀏覽,只需用customView替換查看這裏。您可以訪問發生點擊的視圖。那麼你可以改變視圖的位圖。

+1

它在整個自定義視圖上工作,但我的自定義視圖有很多位圖...我想要監聽每個位圖。 – Noby

+0

@Noby沒有得到解決方案。我堅持在同一點 –

相關問題