在应用程序启动时显示几秒钟的徽标

时间:2011-06-27 15:28:04

标签: android

我希望在应用程序启动前显示徽标几秒钟,并且菜单可见。当它消失时我也想要使用一些。我应该创建一个新活动吗?我可以在布局中设置它吗?

7 个答案:

答案 0 :(得分:17)

为启动屏幕定义一个包含徽标的布局,然后将此代码添加到您的活动中:

public void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.splash);
    //display the logo during 5 seconds,
    new CountDownTimer(5000,1000){
        @Override
        public void onTick(long millisUntilFinished){} 

        @Override
        public void onFinish(){
               //set the new Content of your activity
               YourActivity.this.setContentView(R.layout.main);
        }
   }.start();
}

答案 1 :(得分:2)

您可以使用获取setVisibility(Visibility.GONE)的图像视图;或者某种程度上的东西,或者你可以编写一个活动,只是弹出并在一段时间结束后退出。这是你的个人偏好......

答案 2 :(得分:0)

为什么呢?用户不喜欢等待。但是,如果您需要等待,因为您正在加载某些数据,则可以:

public void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.splash);

    /* Do some work in a new thread, calling setContentView at the end with your view */
}

答案 3 :(得分:0)

答案 4 :(得分:0)

package com.karan.android.video;

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

public class splash extends Activity 
{

   @Override
   public void onCreate(Bundle savedInstanceState) 
   {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.splash);
      Thread splashThread = new Thread() 
      {
         @Override
         public void run() 
         {
            try {
               int waited = 0;
               while (waited < 3000)
               {
                  sleep(100);
                  waited += 100;
               }
            } catch (InterruptedException e)
            {
               // do nothing
            } finally 
            {
               finish();
               Intent i = new Intent(splash.this,video.class);
               startActivity(i);
            }
         }
      };
      splashThread.start();
   }
}

Xml file:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
   xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content">

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

    <TextView 
    android:textSize="40dp"
    android:textColor="#CCFF00"    
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"  
    android:text="Buffering..."
    /> 


</FrameLayout>

答案 5 :(得分:0)

延迟执行可以更简单的方式实现:

new Handler().postDelayed(new Runnable() {
  // ... Hide splash image and show the real UI
}, 3000)

此外,android标准android.widget.ViewSwitcher类非常适用于此类事物。

答案 6 :(得分:0)

您可以在启动时使用纯样式方法使用启动徽标。不幸的是,它仅从API 23版本开始起作用。但是您不需要管理启动活动。

nbmerge file_1.ipynb file_2.ipynb file_3.ipynb > merged.ipynb

res / drawable-v23 / logo_startup.xml:

    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        ...
        <item name="android:windowBackground">@drawable/logo_startup</item>
        <item name="android:windowNoTitle">true</item>
    </style>

res / drawable / logo_startup.xml:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@color/PageBackground"/>

    <item android:width="@dimen/logo_startup" android:height="@dimen/logo_startup" android:gravity="center">
        <bitmap android:src="@drawable/logo"/> //use PNG file here, not vector
    </item>

</layer-list>