我想使用OnTouchListener并跟踪向下和向上事件,然后设置一个alpha值,但我必须将这个监听器添加到所有ImageButtons(它们真的很多)。我想知道是否有实现这一结果的捷径。
答案 0 :(得分:0)
如果用户点击按钮并导致更改该按钮的不透明度,您可以执行以下操作:
在xml file
按钮声明中添加以下行:
android:onClick = "clickMethod"
并在java file
中需要实现clickMethod,
public void clickMethod(View view)
{
// change opacity
}
所以,如果你想为每个按钮做同样的过程(更改按钮不透明度),那么在xml文件中 为每个按钮添加行
android:onClick="clickMethod"
答案 1 :(得分:0)
如果您希望在单击ImageButton时为用户提供更好的expirince,我建议您使用选择drawable作为ImageButtons的背景。它提供了更好的用户体验,然后在执行点击时设置不透明度,这很容易实现。
首先,您需要在名称为f.e的 drawable 文件夹文件中创建。的 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_drawable 和 your_pressed_background_drawable 。 当你这样做时,你应该在每次使用xml的ImageButton时使用以下语句:
机器人:背景= “@绘制/ image_button_selection”