gpt4 book ai didi

android - 启动画面中的逐帧动画 - Android 2.1

转载 作者:行者123 更新时间:2023-11-29 02:05:37 28 4
gpt4 key购买 nike

我正在 android 2.1 中编写启动画面。我希望在初始屏幕上按顺序显示 20 张 png 图像。我尝试使用动画列表,但无法做到。

这是我的代码。现在,有一个名为 firstLoadingImage.png 的图像。仅显示 5000 毫秒。然后 myappactivity 启动。但是,我无法在这段等待时间内更新图像源。你觉得我该怎么做?

SplashScreenActivity

package myapp.activity;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.ImageView;

public class SplashScreenActivity extends Activity {
protected boolean _active = true;
protected int _splashTime = 5000; // time to display the splash screen in ms

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.splashscreen);

Thread splashTread = new Thread() {
@Override
public void run() {
try {
int waited = 0;
while(_active && (waited < _splashTime)) {
sleep(100);
if(_active) {
waited += 100;
}
}
} catch(InterruptedException e) {
// do nothing
} finally {
finish();
startActivity(new Intent(SplashScreenActivity.this, MyAppActivity.class));
stop();
}
}
};
splashTread.start();
}

}

splashscreen.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:id="@+id/linearLayout"
android:background="@drawable/loading_screen_background" >

<ImageView
android:id="@+id/firstLoadingImage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/loading100" />

</LinearLayout>

最佳答案

帧动画可以通过将其设置为 AnimationDrawableImageView 的背景来实现。

例子:

final AnimationDrawable anim = new AnimationDrawable();
anim.addFrame(Context.getResources().getDrawable(R.drawable.resource_id_of_frame1, durationInMs);
anim.addFrame(Context.getResources().getDrawable(R.drawable.resource_id_of_frame2, durationInMs);
anim.addFrame(Context.getResources().getDrawable(R.drawable.resource_id_of_frame3, durationInMs);
...
anim.addFrame(Context.getResources().getDrawable(R.drawable.resource_id_of_framen, durationInMs);
anim.setOneShot(false);

ImageView myImageView = getImageViewToSet();
myImageView.setBackgroundDrawable(anim);
myImageView.post(new Runnable(){
public void run(){
anim.start();
}
}

因此,使用 ImageView 使您的启动画面成为一个简单的布局,或者创建一个并将其添加到布局中。将 AnimationDrawable 设置为它并运行。

关于android - 启动画面中的逐帧动画 - Android 2.1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10231438/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com