【问题标题】:Friends Can any one explain this code [closed]朋友 谁能解释一下这段代码[关闭]
【发布时间】:2014-09-16 22:41:42
【问题描述】:
@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_splash);

        new Handler().postDelayed(new Runnable() {

            /*
             * Showing splash screen with a timer. This will be useful when you
             * want to show case your app logo / company
             */

            @Override
            public void run() {
                // This method will be executed once the timer is over
                // Start your app main activity
                Intent i = new Intent(SplashScreen.this, MainActivity.class);
                startActivity(i);

                // close this activity
                finish();
            }
        }, SPLASH_TIME_OUT);
    }

【问题讨论】:

  • 您遇到了什么问题?
  • 我是 android 新手,我想设计 spalash 屏幕,我看不懂这段代码
  • 是的,它在 SPLASH_TIME_OUT 毫秒内开始一个新的活动,并结束这个活动。它是一个闪屏实现。应该可以很好地工作,除非用户在此过程中不断旋转手机,在这种情况下,它会保持打开的时间过长。
  • 您应该更具体地说明哪些部分让您感到困惑,然后将标题调整为不那么宽泛
  • 这个问题似乎跑题了,因为它是关于解释代码的。

标签: java android


【解决方案1】:

SPLASH_TIME_OUT时间之后,调用Handler的run方法,启动MainActivity。同时,会显示启动画面。

看看this

顺便说一下,闪屏是 android 上的反模式,不应该使用! 要知道为什么,请阅读这篇精彩的文章:Splash Screens Are Evil, Don't Use Them!

【讨论】:

    【解决方案2】:

    如果您的应用程序打包在 jar 文件中,您可以在清单文件中使用“SplashScreen-Image”选项来显示启动画面。将图像放在 jar 存档中并在选项中指定路径。路径不应有前导斜杠。

    初始屏幕显示为包含图像的未装饰窗口。您可以对图像使用 GIF、JPEG 或 PNG 文件。 GIF 格式支持动画,而透明度是 支持 GIF 和 PNG。窗口位于中心 的屏幕。未指定多显示器系统上的位置。 它依赖于平台和实现。启动画面窗口 显示第一个窗口时自动关闭 摆动/AWT

    在调用 SPLASH_TIME_OUT 之前,您的代码将显示启动画面。在初始屏幕之后启动 MainActivity 。(将您的初始屏幕视为屏幕保护程序。)

    如果 Java 实现提供了命令行界面并且您 使用命令行或快捷方式运行您的应用程序,使用 用于显示初始屏幕的 Java 应用程序启动器选项。甲骨文 参考实现允许您指定启动画面图像 带有 -splash: 选项的位置。例如:

    java -splash:filename.gif 测试

    【讨论】:

      【解决方案3】:

      如果你稍微仔细阅读过代码............你可以自己理解......因为那里定义了 cmets 来理解那个代码............ ..

      虽然,下面有代码的描述......

      它是一个创建闪屏的活动......

      IT 使用在定义的指定时间后运行的处理程序。SPLASH_TIME_OUT

      1000 = 1 秒;

      因此,如果您已将 3000 值定义为 SPLASH_TIME_OUT ,新的 ActivityMainActivity.class 将在 3 秒后打开....

      这里使用Intent在指定时间后启动新的Activity....在startActivity(intentobject);的帮助下

      由于finish()方法,当前活动(SplashScreen.this)将被关闭...

      【讨论】:

        猜你喜欢
        • 2017-04-22
        • 1970-01-01
        • 1970-01-01
        • 2021-04-24
        • 1970-01-01
        • 2011-02-11
        相关资源
        最近更新 更多