Android textview可绘制右动画

Android textview可绘制右动画,android,Android,我注意到textview具有可绘制的上/下/左/右。您可以使用setCompundDrawable在代码中设置它 我知道当我有imageview时,我可以使用下面的内容来创建可绘制动画(一帧接一帧)。 但是,如何为textview的drawable(例如drawable Right)执行此操作 谢谢文本视图不允许通过getter访问复合绘图项。因此,您可以从共享的链接以下一种方式添加动画: 火箭推力.xml <animation-list xmlns:android="http://sc

我注意到textview具有可绘制的上/下/左/右。您可以使用setCompundDrawable在代码中设置它

我知道当我有imageview时,我可以使用下面的内容来创建可绘制动画(一帧接一帧)。

但是,如何为textview的drawable(例如drawable Right)执行此操作


谢谢

文本视图
不允许通过getter访问复合绘图项。因此,您可以从共享的链接以下一种方式添加动画: 火箭推力.xml

<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
    android:oneshot="true">
    <item android:drawable="@drawable/rocket_thrust1" android:duration="200" />
    <item android:drawable="@drawable/rocket_thrust2" android:duration="200" />
    <item android:drawable="@drawable/rocket_thrust3" android:duration="200" />
</animation-list>
如果使用代码中的可绘制边界,则需要指定可绘制边界。如果是图像绘图,您可以使用
getIntrinsicWidth
getIntrinsicHeight
进行中继,否则需要指定一些尺寸

AnimationDrawable rocketAnimation;

public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);

  rocketAnimation = (AnimationDrawable) getResources().getDrawable(R.drawable.rocket_thrust);
  rocketAnimation.setBounds(0, 0, rocketAnimation.getIntrinsicWidth(), rocketAnimation.getIntrinsicHeight());

  TextView rocketText = (TextView) findViewById(R.id.text_view);
  rocketText.setCompoundDrawables(rocketAnimation, null, null, null);
}

public boolean onTouchEvent(MotionEvent event) {
  if (event.getAction() == MotionEvent.ACTION_DOWN) {
    rocketAnimation.start();
    return true;
  }
  return super.onTouchEvent(event);
}