我尝试使用 AnimationDrawable 来显示加载动画。我通过将其可见性设置为可见来使加载“屏幕”可见。
我知道应该在设置屏幕后启动 AnimationDrawable,并且我使用了 Google Developers 的解决方案和 onWindowFocusChanged:
@Override public void onWindowFocusChanged(boolean hasFocus) {
// TODO Auto-generated method stub
super.onWindowFocusChanged(hasFocus);ImageView img = (ImageView)findViewById(R.id.animationView);
img.setBackgroundResource(R.drawable.animation_position);
AnimationDrawable frameAnimation = (AnimationDrawable)img.getBackground();
if (hasFocus){
//normal Screen
RelativeLayout listView = (RelativeLayout)findViewById(R.id.listAnzeige);
listView.setVisibility(View.GONE);
//Loading Screen
RelativeLayout ladeScreen = (RelativeLayout)findViewById(R.id.Position);
ladeScreen.setVisibility(View.VISIBLE);
frameAnimation.start();
我的 XML 文件:
<?xml version="1.0" encoding="utf-8"?><animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot="false">
<item android:drawable="@drawable/f1" android:duration="100" />
<item android:drawable="@drawable/f2" android:duration="100" />
<item android:drawable="@drawable/f3" android:duration="100" />
<item android:drawable="@drawable/f4" android:duration="100" />
<item android:drawable="@drawable/f5" android:duration="100" />
<item android:drawable="@drawable/f6" android:duration="100" /></animation-list>
动画没有开始。我认为问题在于可见性,但我不确定。感谢帮助。