例如,我的动画可以在 SGS2 上运行,但不能在 SGS 1 或模拟器上运行(出于某种原因,我构建的其他动画在每台设备上都运行得非常好)
此外,即使在运行动画的设备上,当调用 OnPostExcute 时,动画也会停止,而在其他类似的动画中,也嵌套在 ASyncTask 中,动画在调用 stop() 之前不会停止
每帧的尺寸为512x512
这是动画列表文件:
<?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/logo0" android:duration="35" />
<item android:drawable="@drawable/logo1" android:duration="35" />
<item android:drawable="@drawable/logo2" android:duration="35" />
<item android:drawable="@drawable/logo3" android:duration="35" />
<item android:drawable="@drawable/logo4" android:duration="35" />
<item android:drawable="@drawable/logo5" android:duration="35" />
<item android:drawable="@drawable/logo6" android:duration="35" />
<item android:drawable="@drawable/logo7" android:duration="35" />
<item android:drawable="@drawable/logo8" android:duration="35" />
<item android:drawable="@drawable/logo9" android:duration="35" />
<item android:drawable="@drawable/logo10" android:duration="35" />
<item android:drawable="@drawable/logo11" android:duration="35" />
<item android:drawable="@drawable/logo12" android:duration="35" />
<item android:drawable="@drawable/logo13" android:duration="35" />
<item android:drawable="@drawable/logo14" android:duration="35" />
<item android:drawable="@drawable/logo15" android:duration="35" />
<item android:drawable="@drawable/logo16" android:duration="35" />
<item android:drawable="@drawable/logo17" android:duration="35" />
<item android:drawable="@drawable/logo18" android:duration="35" />
<item android:drawable="@drawable/logo19" android:duration="35" />
<item android:drawable="@drawable/logo20" android:duration="35" />
<item android:drawable="@drawable/logo21" android:duration="35" />
<item android:drawable="@drawable/logo22" android:duration="35" />
<item android:drawable="@drawable/logo23" android:duration="35" />
<item android:drawable="@drawable/logo24" android:duration="35" />
<item android:drawable="@drawable/logo25" android:duration="35" />
<item android:drawable="@drawable/logo26" android:duration="35" />
<item android:drawable="@drawable/logo27" android:duration="35" />
<item android:drawable="@drawable/logo28" android:duration="35" />
<item android:drawable="@drawable/logo29" android:duration="35" />
<item android:drawable="@drawable/logo30" android:duration="35" />
<item android:drawable="@drawable/logo31" android:duration="35" />
<item android:drawable="@drawable/logo32" android:duration="35" />
<item android:drawable="@drawable/logo33" android:duration="35" />
<item android:drawable="@drawable/logo34" android:duration="35" />
<item android:drawable="@drawable/logo35" android:duration="35" />
<item android:drawable="@drawable/logo36" android:duration="35" />
<item android:drawable="@drawable/logo37" android:duration="35" />
<item android:drawable="@drawable/logo38" android:duration="35" />
<item android:drawable="@drawable/logo39" android:duration="35" />
<item android:drawable="@drawable/logo40" android:duration="35" />
<item android:drawable="@drawable/logo41" android:duration="35" />
<item android:drawable="@drawable/logo42" android:duration="35" />
<item android:drawable="@drawable/logo43" android:duration="35" />
<item android:drawable="@drawable/logo44" android:duration="35" />
<item android:drawable="@drawable/logo45" android:duration="35" />
<item android:drawable="@drawable/logo46" android:duration="35" />
<item android:drawable="@drawable/logo47" android:duration="35" />
<item android:drawable="@drawable/logo48" android:duration="35" />
<item android:drawable="@drawable/logo49" android:duration="35" />
<item android:drawable="@drawable/logo50" android:duration="35" />
<item android:drawable="@drawable/logo51" android:duration="35" />
<item android:drawable="@drawable/logo52" android:duration="35" />
<item android:drawable="@drawable/logo53" android:duration="35" />
<item android:drawable="@drawable/logo54" android:duration="35" />
<item android:drawable="@drawable/logo55" android:duration="35" />
<item android:drawable="@drawable/logo56" android:duration="35" />
<item android:drawable="@drawable/logo57" android:duration="35" />
<item android:drawable="@drawable/logo58" android:duration="35" />
<item android:drawable="@drawable/logo59" android:duration="35" />
</animation-list>
这是应该启动动画的代码:
final ImageView logoAnimation = (ImageView) findViewById(R.id.logoAnimation);
logoAnimation.setImageResource(R.drawable.none);
logoAnimation.setBackgroundResource(R.drawable.logo_animation);
final AnimationDrawable frameAnimation = (AnimationDrawable) logoAnimation
.getBackground();
class Init extends AsyncTask<Void, Boolean, Boolean> {
@Override
protected void onPreExecute() {
super.onPreExecute();
frameAnimation.start();
}
@Override
protected Boolean doInBackground(Void... params) {
if (!isNetworkAvailable()) {
return false;
} else {
try {
CheckAll();
} catch (IOException e) {
}
}
return true;
}
@Override
protected void onPostExecute(Boolean result) {
super.onPostExecute(result);
frameAnimation.stop();
if (result) {
Intent openMain = new Intent(c, Main.class);
startActivity(openMain);
Splash.this.finish();
} else {
Builder alertDialog = new AlertDialog.Builder(Splash.this);
alertDialog
.setMessage(getString(R.string.noInternetConnection));
alertDialog.setNegativeButton(getString(R.string.close),
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int which) {
Splash.this.finish();
}
});
alertDialog.show();
}
}
}
new Init().execute();
而且我不知道是否需要它,但这是布局 xml 文件:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/splash"
android:orientation="vertical" >
<ImageView
android:id="@+id/logoAnimation"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:src="@drawable/logo0"
android:contentDescription="@null" />
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/logoAnimation"
android:layout_centerHorizontal="true"
android:text="@string/loading"
android:textAppearance="?android:attr/textAppearanceLarge" />
</RelativeLayout>