1

我想使用 OnTouchListener 并跟踪向下和向上事件,然后设置一个 alpha 值,但我必须将此侦听器添加到所有 ImageButtons(它们真的很多)。我想知道是否有捷径可以达到这个结果。

4

2 回答 2

0

如果当用户单击按钮并导致更改该按钮的不透明度时,您可以执行以下操作:

在您的xml fileon 按钮声明中添加以下行:

android:onClick = "clickMethod"

并且在java file你需要实现clickMethod,

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

因此,如果您想为每个按钮执行相同的过程(更改按钮不透明度),那么在每个按钮的 xml 文件中添加该行

android:onClick="clickMethod"
于 2013-05-13T20:50:49.767 回答
0

如果您想在单击 ImageButton 时给用户更好的体验,我建议您使用 selection drawable 作为 ImageButtons 的背景。它提供了更好的用户体验,然后在执行点击时设置不透明度,这真的很容易实现。

首先,您需要在名称为 fe 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:background="@drawable/image_button_selection"

于 2013-05-13T21:21:15.223 回答