如何给TextView上的drawable上的图片添加动画?

可能你遇到过这样的场景,就是在 xml 里,给TextView添加了一个drawableLeft或者drawableRight等,你想给这个图片添加一个动画,然而你会发现当你给这个TextView加动画吧并不是我们想要的,我们只想要那个图片做动画,文字不需要做任何动画,目前可以有两种做法。

第一种做法

也是比较通俗的方法,说这个drawable 单独弄成ImageView不就好了,在xml里新增一个ImageView 是吧,干嘛非要加在一个标签里面,要相信布局都是很强大的,肯定可以实现效果。

第二种做法

你说真的没办法,必须写在一个里面,也是有办法的,那就不能在xml里设置drawableLeft了,代码设置,如下:

1
2
3
AnimationDrawable d = (AnimationDrawable) getResources().getDrawable(R.drawable.animation_draw);  
d.setBounds(0,0,d.getIntrinsicWidth(),d.getIntrinsicHeight());
messageText.setCompoundDrawables(d, null, null, null);

这个具体的动画在这个animation_draw里,如下:

1
2
3
4
5
6
7
8
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot="false"
>

<item android:drawable="@drawable/ic_launcher"
android:duration="500" />

</animation-list>

这是一个帧动画,里面可以放很多的item,从而形成动画,碰到了这种情况记录下,方便以后查阅。

-------------本文结束感谢您的阅读-------------