我有一个带有多个ImageView的栏,每个都用作一个按钮(通过使用OnClickListener)。现在我想要实现的是当用户按下图像时,图像周围会出现某种发光效果(就像你在iphone上按下barButton一样)。
这可能吗?
答案 0 :(得分:1)
这是可能的。实现这一目标的正确方法是定义StateList Drawable statelist为每个州定义了一个单独的drawable。
例如,下面的xml定义了一个drawable,它显示了按下按钮时的blue_button_pressed drawable和所有其他情况下的blue_button_active drawable。
<?xml version="1.0" encoding="utf-8"?>
<selector
xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_pressed="true"
android:drawable="@drawable/blue_button_pressed"/>
<item
android:drawable="@drawable/blue_button_active"/>
</selector>
您将此文件放在drawable文件夹中,就像任何其他图像一样,并且在布局文件中引用它,就像任何其他可绘制文件一样。
答案 1 :(得分:0)
由于某种原因,大多数视图实际上并没有动画可动画的Drawables。为此,您必须通过调用start()
(或AnimationDrawable
上的Animatable
方法手动启动动画。
虽然出于某些奇怪的原因,但在将Drawable
设置为View
之后,您无法立即执行此操作。相反,您可以尝试将开始调用发布到处理程序,以便在Drawable
的初始设置和动画开始之间有一段时间。
没有时间找出它为什么会这样,但这是我最终要做的事情。
答案 2 :(得分:-1)
您可以手动生成此发光效果作为背景图片,并使其在单击时显示为实际图像后面的父视图。但我认为没有任何原生功能。