我正在开发一款面向ICS的应用程序。我喜欢操作栏中按钮对用户触摸的反馈(蓝色光晕),是否有一种简单的方法可以为ImageButton添加相同的反馈?
类似于这样,但使用ImageButton:
我正在开发一款面向ICS的应用程序。我喜欢操作栏中按钮对用户触摸的反馈(蓝色光晕),是否有一种简单的方法可以为ImageButton添加相同的反馈?
类似于这样,但使用ImageButton:
是的,进入您的SDK。
导航到平台->android-15->数据->res
现在您已经进入系统的res文件夹。如果您在drawable文件夹中搜索,应该能找到表示默认系统按钮的xml选择器。该选择器应该引用存储在其他drawable文件夹中的一些图像。选择一个分辨率,进入其文件夹并找到所有所需的图像。
一旦您获得了所有所需的资源,就可以将它们包含在自己的项目中。然后使用自己的选择器,在按下时显示替代图像。
我不确定您想要的效果,但我认为如果将btn_default_holo_pressed.9.png设置为带有src图像的图像视图的背景,它应该出现带有蓝色条的外部。使用选择器,您可以在按下操作期间使此操作发生。
<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>