2011-05-31 123 views
0

所以我很喜歡使用Android SDK的noob(與直接Java相比,我覺得它很混亂)。這是我第二天使用它,整個教自己。需要幫助使矩形功能像按鈕(安卓)

有了這個提到,我想知道如何使一個矩形作爲一個按鈕。

基本上用戶將點擊某個矩形(畫在屏幕上,但如何繪製它是一個不同的問題;我是完全與畫布丟失),然後我想檢查x /他們碰觸的地方,看看是否包含在矩形內,此時應用程序將執行某些操作(例如,在用戶界面上的某個文本視圖中更改文本)。

我一直在努力做到這一點大約一個小時沒有運氣,如果任何人都可以寫一小段關於如何做到這一點的源代碼,我會很感激!

+0

也看看ImageView ... – JAL 2011-06-01 00:07:59

回答

2

所以我打算假設你正在使用SurfaceView來繪製。你想要的應該很簡單。

首先,覆蓋面視圖中的觸摸事件,並存儲了最後觸摸的座標:

@Override 
public void onTouchEvent(MotionEvent event) { 
x = event.getX(); 
y = event.getY(); 
} 

然後,檢查您的RECT包含座標:

Rect rect = new Rect() // Your rect 

if (rect.contains(x, y) { 
    // Contained in your rect 
} else { 
    // Not contained in your rect 
} 

我相信這就是你問的問題?如果您仍然感到困惑,請告訴我。

+0

說實話,我還沒有聽說過surfaceview,所以我不知道如何使用它來繪製矩形。您是否可以製作一個非常小的程序,用矩形表面視圖繪製矩形,然後使用此觸摸事件來改變顏色?如果沒有太多要問。您發佈的代碼與我正在嘗試的代碼非常相似(使用.contains),除非我試圖使用一個使我感到困惑的OnTouchListener。 – Matt 2011-05-31 23:54:32

+0

哦,好吧,這是假設你正在創建自己的SurfaceView。但是你也應該可以創建自己的onTouchListener,並將其綁定到一個視圖,並以相同的方式監聽觸摸事件。但是,是的。要進行繪圖,您可能想要查看SurfaceView類並覆蓋它的onDraw。這就是你擁有畫布的地方,可以做像canvas.drawRect(....); – Brayden 2011-06-01 00:00:17

+0

對於初學者來說,SurfaceView會令人困惑。看看LunarLander API演示。 – Snailer 2011-06-01 00:52:39