gpt4 book ai didi

android - 载入画面介绍

转载 作者:行者123 更新时间:2023-11-29 21:16:28 25 4
gpt4 key购买 nike

在我正在开发的应用程序中,我对加载屏幕的介绍很感兴趣。持续一段时间后自动移动到下一个屏幕。

简介本身运行良好。以及延迟系统的线程。我的问题是让它们协同工作。

代码:

public class MainActivity extends Activity implements OnClickListener {

ImageView iv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.loading_screen);


final Thread t1=new Thread(new Runnable() {


public void run() {

iv=(ImageView)findViewById(R.id.imgBtn1);
iv.setBackgroundResource(R.anim.loading_i_animation);
AnimationDrawable anim=(AnimationDrawable) iv.getBackground();
anim.start();

}
});

t1.start();


try {
Thread.sleep(2000);
finish();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

finally {
Intent st=new Intent(MainActivity.this,Welcome.class);
startActivity(st);
}


}

此代码的结果是在线程休眠持续时间内打开一个白屏。然后通过 Intent 打开“Welcome.class”屏幕。

它只是跳过了 loading_screen,因为它甚至不存在。

我希望你们能帮我解决这个问题。

最佳答案

您将 sleep 放在 UI 线程上,这会阻止 Android 在它完成之前显示任何内容。试试下面的代码:

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.loading_screen);

iv=(ImageView)findViewById(R.id.imgBtn1);
iv.setBackgroundResource(R.anim.loading_i_animation);
AnimationDrawable anim=(AnimationDrawable) iv.getBackground();
anim.start();

new Handler().postDelayed(
new Runnable() {
public void run() {
Intent st=new Intent(MainActivity.this,Welcome.class);
startActivity(st);
finish();
}
}, 2000);
}

这样延迟将在单独的线程上运行,但 2 秒后它会变回主线程并运行您在 Runnable

中指定的代码

关于android - 载入画面介绍,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21311499/

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