ImageView 在旋转Android

发布时间: 2016/9/26 3:44:59
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我需要做 imageview 旋转功能。所以我看了看 android 开发者网站。使用它们的代码。但不知何故生成错误信息。

错误︰java.lang.ClassCastException: android.graphics.drawable.StateListDrawable cannot be cast to android.graphics.drawable.AnimationDrawable

我有这些代码︰

ImageView refresh = (ImageView)findViewById(R.id.refresh_devices_button);
refresh.setBackgroundResource(R.drawable.spin_animation); // The IDE says that it may produce null pointer exception
AnimationDrawable frameAnimation = (AnimationDrawable) refresh.getBackground();
frameAnimation.start();

在 spin_animation.xml:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<animation-list android:id="@+id/selected" android:oneshot="false">
    <item android:drawable="@drawable/scan_1" android:duration="50" />
    <item android:drawable="@drawable/scan_2" android:duration="50" />
    <item android:drawable="@drawable/scan_3" android:duration="50" />
    <item android:drawable="@drawable/scan_4" android:duration="50" />
    <item android:drawable="@drawable/scan_5" android:duration="50" />
</animation-list>
</selector>

请帮我。从安卓的网站我获取代码,但它们的代码不起作用。也许问题是与我的 spin_animation.xml 文件。

refresh.getBackground返回 StateListDrawable 我想。

解决方法 1:

我发现, android 网站是好。问题是与我 xml 文件。 我有这种代码

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <animation-list android:id="@+id/selected" android:oneshot="false">
        <item android:drawable="@drawable/scan_1" android:duration="50" />
        <item android:drawable="@drawable/scan_2" android:duration="50" />
        <item android:drawable="@drawable/scan_3" android:duration="50" />
        <item android:drawable="@drawable/scan_4" android:duration="50" />
        <item android:drawable="@drawable/scan_5" android:duration="50" />
    </animation-list>
</selector>

对于上面的代码中,我用下面的代码。我不得不删除 <selector> 标签。

<?xml version="1.0" encoding="utf-8"?>
<animation-list 
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:id="@+id/selected" android:oneshot="false">
    <item android:drawable="@drawable/scan_1" android:duration="50" />
    <item android:drawable="@drawable/scan_2" android:duration="50" />
    <item android:drawable="@drawable/scan_3" android:duration="50" />
    <item android:drawable="@drawable/scan_4" android:duration="50" />
    <item android:drawable="@drawable/scan_5" android:duration="50" />
</animation-list>
赞助商