如何制作启动画面(应用程序启动时屏幕可见)?

pam*_*buk 18 android splash-screen

我有一个简单的应用程序,它启动,从网络加载xml提要,您可以浏览新闻列表,然后阅读所选新闻项目的详细信息.我想要做的是有一个启动画面,这意味着一旦你点击应用程序,它应该显示一个图像(在我的情况下的应用程序名称),然后只有在它们加载后显示新闻列表.

我读到了类似的(我认为)问题,通常人们会说使用FrameLayout,但我无法解决它.我不确定这是否可以在第一个启动的活动中完成,也许我应该只在一个活动中显示这个启动图像,然后才调用活动显示我的新闻列表?

我知道在iPhone上你可以在开发时在应用程序设置中设置启动画面,很高兴在android的应用程序清单中有这个功能...

jag*_*und 35

Android建议您在启动时执行冗长的计算时使用启动画面.以下是Android开发者网站的摘录 - 响应式设计:

"如果您的应用程序有一个耗时的初始设置阶段,请考虑尽快显示启动画面或渲染主视图并异步填写信息.在任何一种情况下,您都应该以某种方式指出正在取得进展,以免用户认为应用程序被冻结了." - Android开发者网站

您可以创建一个显示进度对话框的活动,同时使用AsyncTask从网络下载xml提要,解析它,将其存储到数据库(如果需要),然后启动显示新闻源的活动.通过调用finish()关闭splash活动

这是一个框架代码:


public class SplashScreen extends Activity{
   @Override
   public void onCreate(Bundle savedInstanceState){
      super.onCreate(savedInstanceState);
      // set the content view for your splash screen you defined in an xml file
      setContentView(R.layout.splashscreen);

      // perform other stuff you need to do

      // execute your xml news feed loader
      new AsyncLoadXMLFeed().execute();

   }

   private class AsyncLoadXMLFeed extends AsyncTask<Void, Void, Void>{
      @Override
      protected void onPreExecute(){
            // show your progress dialog

      }

      @Override
      protected Void doInBackground(Void... voids){
            // load your xml feed asynchronously
      }

      @Override
      protected void onPostExecute(Void params){
            // dismiss your dialog
            // launch your News activity
            Intent intent = new Intent(SplashScreen.this, News.class);
            startActivity(intent);

            // close this activity
            finish();
      }

   }
}
Run Code Online (Sandbox Code Playgroud)

希望有所帮助!