触摸ImageButton(Android)的反馈

时间:2012-05-23 13:05:24

标签: android android-4.0-ice-cream-sandwich feedback

我正在为ICS开发一款应用程序。我喜欢动作栏中按钮反馈给用户触摸的方式(蓝色光晕),是否有一些简单的方法为ImageButton添加相同的反馈?

像这样,但使用ImageButton: enter image description here

3 个答案:

答案 0 :(得分:2)

是的,请进入您的SDK。

导航至平台 - > android-15-> data-> res

您现在位于系统的res文件夹中。如果你在drawable文件夹中搜索,你应该能够找到代表默认系统按钮的xml选择器。该选择器应该引用存储在其他可绘制文件夹中的一些图像。选择一个分辨率并进入其文件夹并找到所有必需的图像。

获得所有必需的资源后,您可以将它们包含在您自己的项目中。然后使用您自己的选择器在按下时显示备用图像。

我不确定你的效果,但我认为如果你将btn_default_holo_pressed.9.png设置为图像视图的背景,并且src中的图像应该出现在它外面的蓝色条。使用选择器,您可以在按下操作期间实现此目的。

答案 1 :(得分:0)

我认为这可能是您正在寻找的: Image in Canvas with touch events

图像按钮和图像视图彼此非常相似。

答案 2 :(得分:0)

如果您只是想添加反馈

使用drawable作为ImageButton背景。

public class App {

public static void main(String[] args) {
    App a = new App();
    List<String> strList = new ArrayList<String>();
    strList.add("Hello");
    strList.add("World");
    List<Integer> intList = new ArrayList<Integer>();
    intList.add(1);
    intList.add(2);
    intList.add(3);

    a.firstPrint(strList);
    a.firstPrint(intList);

    a.secondPrint(strList);
    a.secondPrint(intList);
}

public <T extends Object> void firstPrint(List<T> theList) {
    System.out.println(theList.toString());
}

public void secondPrint(List<? extends Object> theList) {
    System.out.println(theList.toString());
}

}

为“图像”按钮创建可绘制文件:

ic_filter_state.xml:

    <ImageButton
        android:id="@+id/btn_show_filter_dialog"
        android:layout_width="24dp"
        android:layout_height="24dp"
        android:background="@drawable/ic_filter_state"/>

对于反馈,您只需要state_pressed =“true”和state_enabled =“true”drawables

这是一个带矢量drawable的示例,但您可以添加自己的drawable。 更改每个州的fillColor列:

ic_filter_solid.xml:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:state_enabled="false"
        android:drawable="@drawable/ic_filter_disable" />
    <item
        android:state_pressed="true"
        android:state_enabled="true"
        android:drawable="@drawable/ic_filter_click" />
    <item
        android:state_focused="true"
        android:state_enabled="true"
        android:drawable="@drawable/ic_filter_roll" />
    <item
        android:state_enabled="true"
        android:drawable="@drawable/ic_filter_solid" />
</selector>