ImageButton的触摸反馈(Android)

3

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

类似于这样,但使用ImageButton: enter image description here

3个回答

2

是的,进入您的SDK。

导航到平台->android-15->数据->res

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

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

我不确定您想要的效果,但我认为如果将btn_default_holo_pressed.9.png设置为带有src图像的图像视图的背景,它应该出现带有蓝色条的外部。使用选择器,您可以在按下操作期间使此操作发生。


谢谢您的回答。但是,您的意思是我需要为每个按钮都添加一个额外的ImageView来实现这样的反馈吗? - user1049280

1
如果您只是想添加反馈,请将可绘制对象用作ImageButton的背景。
    <ImageButton
        android:id="@+id/btn_show_filter_dialog"
        android:layout_width="24dp"
        android:layout_height="24dp"
        android:background="@drawable/ic_filter_state"/>

创建图像按钮的可绘制文件:

ic_filter_state.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>

对于反馈,你只需要使用state_pressed="true"和state_enabled="true"绘制可绘制对象。

这里有一个矢量可绘制对象的示例,但你可以添加自己的可绘制对象。为每个状态更改fillColor列:

ic_filter_solid.xml:

<vector android:alpha="1" android:height="24dp"
    android:viewportHeight="512" android:viewportWidth="512"
    android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
    <path android:fillColor="#ffffff" android:pathData="M487.976,0H24.028C2.71,0 -8.047,25.866 7.058,40.971L192,225.941V432c0,7.831 3.821,15.17 10.237,19.662l80,55.98C298.02,518.69 320,507.493 320,487.98V225.941l184.947,-184.97C520.021,25.896 509.338,0 487.976,0z"/>
</vector>

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接