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