我有一个酒吧与几个ImageViews,他们每个人都用作一个按钮(通过使用OnClickListener)。现在我想要实现的是,当用户按下图像时,图像周围会出现某种发光效果(就像在iPhone上按barButton时一样)。Android:动画图像?
这可能吗?
我有一个酒吧与几个ImageViews,他们每个人都用作一个按钮(通过使用OnClickListener)。现在我想要实现的是,当用户按下图像时,图像周围会出现某种发光效果(就像在iPhone上按barButton时一样)。Android:动画图像?
这可能吗?
这是可能的。达到此目的的正确方法是定义一个StateList Drawable。
状态列表为每个状态定义一个单独的drawable。
例如下面的XML定义了一可拉伸表示如果按钮按下blue_button_pressed绘制和在所有其他情况下,可绘制blue_button_active。
<?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>
你把这个文件中的文件夹绘制像任何其他图像,也引用它的布局文件像任何其他绘制。
您可以手动生成此发光效果作为背景图片,并使其在单击时显示为实际图像背后的父视图。但我不认为有任何本地功能。
尽管出于某种原因,大多数视图实际上并没有动画动画可绘制。要做到这一点,你必须通过调用AnimationDrawable
的start()
方法(或Animatable
,对于这个问题)手动启动动画。
虽然将Drawable
设置为View
后,您不能立即执行此操作,但出于某种奇怪的原因。相反,你可以尝试发布开始通话的处理程序,使存在Drawable
和初始设置其动画的开始之间的一段时间。
没有时间找出为什么它的行为这样还,但它是我最后不得不做的事。
好的,但是这意味着我将不得不手动创建2个图像。那里没有内置的动画吗? – Alex1987 2011-02-15 11:56:29