2013-05-13 64 views
1

我想用OnTouchListener和跟蹤向下和向上的活動,然後設定一個alpha值,但我有這個監聽器添加到所有ImageButtons(他們真的是很多)。我想知道是否有捷徑實現這個結果。Android的:如何在ImageButton的增加不透明度點擊?

+0

要設置按鈕的不透明度被點擊或當一些按鈕,用戶點擊,所有按鈕的不透明度改變? – Elior 2013-05-13 20:43:09

+0

當用戶點擊按鈕我想添加不透明度,並且當用戶釋放它時,不透明度將獲得原始值 – 2013-05-13 21:00:42

回答

0

在情況下,當按鈕用戶點擊這個原因,以改變該按鈕的不透明度,你可以這樣做:

在你xml file按鈕聲明中加入這一行:

android:onClick = "clickMethod" 

,並在java file你需要實現clickMethod,

public void clickMethod(View view) 
{ 
    // change opacity 
} 

所以,如果你想要做同樣的處理(改變按鈕不透明度)的每一個按鈕,這樣在每個按鈕的xml文件 添加一行

android:onClick="clickMethod" 
+0

我必須將clickMethod放在哪裏?每個活動內? – 2013-05-13 20:56:23

+0

不,讓我們說你有3個按鈕的名爲MainLayout.xml的佈局,所以在這個佈局中的每個按鈕,你需要添加行 - android:onClick =「clickMethod」,現在在與這個XML文件相關的java文件中,你應該添加clickMethod .. – Elior 2013-05-13 21:10:27

+0

所以對於每個活動有一個不同的方法..因爲它應該與佈局 – Elior 2013-05-13 21:11:36

0

如果你想點擊的ImageButton的時候給用戶更好的expirince,我建議你使用選擇繪製爲您ImageButtons的背景。它提供了更好的用戶體驗,然後設置不透明度,同時進行點擊它真的很容易實現的。

首先,您需要在您的可繪製中創建名稱爲f.e的文件夾文件。 image_button_selection.xml。在這你應該定義:

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_focused="true" android:state_pressed="false" android:drawable="@drawable/your_focused_background_drawable" /> 
    <item android:state_pressed="true" android:drawable="@drawable/your_pressed_background_drawable " /> 
    <item android:drawable="@android:color/transparent" /> 
</selector> 

你也應該投入繪製兩次與將被顯示在焦點的按鈕和按下的按鈕alpha通道PNG文件。在這個例子中,他們應該被分別命名爲your_focused_background_drawableyour_pressed_background_drawable。 當你這樣做,你應該在XML使用每次使用您的ImageButton的聲明如下:

的android:背景=「@繪製/ image_button_selection」