【问题标题】:How to animate between two different 9-patch images?如何在两个不同的 9-patch 图像之间制作动画?
【发布时间】:2017-07-14 08:05:49
【问题描述】:

如何在两个 9 补丁图像文件之间制作动画?我有两个不同形状的 9 补丁图像文件,我想随着时间的推移从一个图像到下一个图像进行动画处理。我知道一种使用我认为适用的可绘制对象的方法,但是,我收到了一个转换错误

android.graphics.drawable.NinePatchDrawable 不能转换为 android.graphics.drawable.TransitionDrawable

这是我的实现。我创建了一个可绘制文件,引用了我的两个 9-patch 图像。

<?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);

没有结果。动画不工作。

【问题讨论】:

    标签: android animation android-animation nine-patch


    【解决方案1】:

    对于其他遇到这个问题,原因是因为xml drawable没有设置为背景。

    添加下面的行解决了转换问题。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-27
      相关资源
      最近更新 更多