当用户点击它时,蓝色突出显示在ImageView上

ale*_*leb 5 android android-imageview touch-feedback

我有一个带有ImageView和TextView的LinearLayout"卡".我想要在用户点击它时突出显示该卡.有关示例,请参见http://www.youtube.com/watch?v=Yx1l9Y7GIk8&feature=share&t=15m17s.

通过设置可以轻松完成TextView android:background="@drawable/blue_highlight".下面是res/drawable/blue_highlight.xml:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
  <item android:state_selected="true" android:drawable="@color/selected"/>
  <item android:state_pressed="true" android:drawable="@color/pressed"/>
  <item android:drawable="@color/bg_window"/>
</selector>
Run Code Online (Sandbox Code Playgroud)

但这对ImageView不起作用,因为图像在前面而背景不可见.如何为ImageView创建半透明色的触摸高光效果?

ale*_*leb 12

令人惊讶的是,FrameLayout具有可用于此的前景属性.缺点是你必须添加一个额外的FrameLayout元素.实现很简单,所以在你有时间实现花哨的图像处理(对图像去色,然后应用高亮显示)和动态构建状态drawable之前,这似乎已经足够了.

所以在我的情况下,这将是:

<FrameLayout
    android:foreground="@drawable/blue_highlight_image"
    >
  <ImageView ...>
</FrameLayout>
Run Code Online (Sandbox Code Playgroud)

@ drawable/blue_highlight_image使用一个新的@color/pressed_image值,类似于@ color/pressed但有一个alpha通道,例如:#81CFEB - >#AA81CFEB.

感谢@Vang提出的建议.