如何在两个不同的9补丁图像之间制作动画?

时间:2017-05-26 00:00:53

标签: android animation android-animation nine-patch

如何在两个9个修补的图像文件之间设置动画?我有两个不同形状的9个修补图像文件,我希望随着时间从一个图像到下一个图像进行动画制作。我知道使用drawables的方法,我认为会适用,但是,我收到了一个转换错误

  

android.graphics.drawable.NinePatchDrawable无法强制转换为   android.graphics.drawable.TransitionDrawable

这是我的实施。我创建了一个引用我的两个9补丁图像的可绘制文件。

<?xml version="1.0" encoding="UTF-8"?>
<transition xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/bg_drawer_blue" />
    <item android:drawable="@drawable/bg_drawer_white" />
</transition>

然后我尝试做动画

TransitionDrawable transition = (TransitionDrawable) mAnimateBgView.getBackground();
transition.startTransition(10000);

我也试过

TransitionDrawable td = new TransitionDrawable(new Drawable[] {
     getResources().getDrawable(R.drawable.bg_drawer_blue),
     getResources().getDrawable(R.drawable.bg_drawer_white)
});
d.startTransition(1000);

没有结果。动画不起作用。

1 个答案:

答案 0 :(得分:0)

对于遇到此问题的其他人,原因是因为xml drawable未设置为背景。

添加以下行解决了投射问题。

mAnimateBgView.setBackground(getResources().getDrawable(R.drawable.anim_bg));