我正在编写一个 Android 应用程序并且遇到了一个非常奇怪的情况。我有一个动画列表 xml 文件,该文件是为名为“loading.xml”的动画加载图形创建的,并且我将其设置为代码中 ImageView 的背景。它是这样的:
public void startLoading() {
if(!isLoading) {
loading.setBackgroundResource(R.drawable.loading);
loading.post(new Runnable() {
public void run() {
anim = (AnimationDrawable) loading.getBackground();
anim.start();
}
});
flMask.setBackgroundResource(R.drawable.mask_loading);
flMask.setVisibility(View.VISIBLE);
flMask.bringToFront();
isLoading = true;
}
}
这非常有效,没有任何问题。但是,如果我将 'loading.xml' 重命名为 'anim_loading.xml' (以使其与我通常的命名方案保持一致),我会得到一个接近的力量
java.lang.ClassCastException: android.graphics.drawable.ColorDrawable
在哪里
anim = (AnimationDrawable)loading.getBackground();
更改名称后,它会强制关闭,如果我将其更改回“loading.xml”,它会再次正常工作。
我真的被这个难住了。我尝试使用正确的名称创建一个全新的文件,各种清理/构建,关闭/重新打开 Eclipse,关闭/重新打开 AVD,擦除 AVD 并重新安装,我尝试将 xml 文件完全重命名为其他文件,然后没有其他同名资源。到目前为止,除了保留名为“loading.xml”的文件之外,没有任何效果,至少它可以工作,但很烦人。我找不到任何有相同类型问题的人,这与 SO 和互联网一样庞大,通常意味着我在某个地方错过了一些愚蠢的东西。
有没有人知道为什么它不允许更改此文件的名称?