当前位置: 首页 > 知识库问答 >
问题:

屏幕前的白色屏幕

仲孙鸣
2023-03-14

我的SplashScreenActivity有问题,当我在手机上启动应用程序时,它会显示约0.5秒的白色屏幕。MainActivity扩展了FragmentActivity,在AndroidManifest中,我声明SplashScreenActivity为启动器,肖像模式为screenOrientation

代码:

public class SplashScreenActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.splashscreen);
    randomSplash();

    Thread splashscreen = new Thread() {

        public void run() {
            try {
                Thread.sleep(1000);
                Intent mainScreen = new Intent("com.rm.jkrm.MAINACTIVITY");
                startActivity(mainScreen);
            } catch (InterruptedException e) {

            } finally {
                finish();
            }
        }
    };
    splashscreen.start();
}

private void randomSplash(){
    Random random = new Random();
    int i = random.nextInt(4);

    LinearLayout ln = (LinearLayout) findViewById(R.id.splashscreen);

    switch(i){
    case 1: 
        ln.setBackgroundResource(R.drawable.splash1);
        break;
    case 2: 
        ln.setBackgroundResource(R.drawable.splash2);
        break;
    case 3: 
        ln.setBackgroundResource(R.drawable.splash3);
        break;
    default: 
        ln.setBackgroundResource(R.drawable.splash0);
        break;
    }
}
}

XML:

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

共有3个答案

有宏峻
2023-03-14

更改AndroidManifest中的活动主题。将xml文件复制到该文件

android:theme="@android:style/Theme.Translucent.NoTitleBar"
贲骏喆
2023-03-14

您需要在异步任务中运行这两个操作:

setContentView(R.layout.splashscreen);
randomSplash();

setContentView放入运行的doInBackground方法和postExecute方法randomSplash

闾丘成双
2023-03-14
 Thread splashscreen = new Thread() {

        public void run() {
            try {
                Thread.sleep(1000);
                Intent mainScreen = new Intent("com.rm.jkrm.MAINACTIVITY");
                startActivity(mainScreen);
            } catch (InterruptedException e) {

            } finally {
                finish();
            }
        }
    };
    splashscreen.start();

这是你的问题UI线程睡眠不是一个很好的主意使用处理程序,我认为它可能会导致一个异常。

Handler h=new Handler();
        h.postDelayed(new Runnable() {

            public void run() {
                // TODO Auto-generated method stub
                startActivity(new Intent(Splash_Activity.this,Main_Activity.class));
                finish();
            }
        }, 2000);
    }
 类似资料:
  • 我以前也发布过同样的问题,但我现在再次发布,因为我在代码中发现了更多的错误并更正了它们。然而,我仍然面临着和以前一样的问题! 原始帖子:我几周前刚开始学习Python,我正在学习一个教程,用pygame构建一个数独解算器! 我现在面临的问题是,每当我尝试运行代码时,只会弹出一个黑色的空白窗口。我已经一遍又一遍地检查我的代码,但我似乎找不到问题。。。我不确定我的代码中到底是哪里出了问题,所以请原谅我

  • 我已经创建了一个初始屏幕,它一开始工作得很好,但之后,它会向我显示一个白色空白屏幕,而不是我的初始屏幕图像文件。我不知道为什么会发生这种情况。 我试图改变我的风格.xml父主题,但有些主题使我的应用程序崩溃,只有主题.AppCompat.Light.NoActionBar可以工作,并给我一个空白的白屏。 styles.xml 飞溅.java 屏幕序列、线程Hibernate时间和其他一切都正常工作

  • 我使用一个空活动为我的应用程序创建了一个启动屏幕,该活动在背景图像中保持可见3秒钟。通常,应用程序在背景图像变为可见之前以白色屏幕启动,然而,有些应用程序已经以“真实”的初始屏幕图像启动。如何实现这一点?

  • 我使用的是EclipseIDE,下面的代码在浏览器上显示空白屏幕。我不知道为什么它会显示空白屏幕。有什么想法吗?提前谢谢。 请查找部署描述符文件。网状物xml:

  • 我有一个运行良好的Android应用程序,但我发现了一个恼人的bug,我不知道还能做些什么来解决它。 我的应用程序只有一个活动(称之为HomeActivity;加上Preferences活动)和许多片段。HomeActivity使用此方法管理每个片段的替换(可在此线程中找到,尤其是查看以下注释): 要替换一个片段,我要做的是以下操作: 问题就在这里:我浏览了几个Fragments(比如说,其中的3

  • 我运行以下代码: 当我运行代码时,pygame窗口打开,但它是一个空白(黑色)屏幕。我还收到以下错误消息:Traceback(最近一次呼叫last): 文件"C:/用户/Draco/OneDrive/文档/编程/graphics.py",第13行,screen.blit(img(0,0))TypeError:'pyplay.Surface'对象不可调用 我试图打开的图像保存为JPG文件。图像保存在