我希望在应用程序启动前显示徽标几秒钟,并且菜单可见。当它消失时我也想要使用一些。我应该创建一个新活动吗?我可以在布局中设置它吗?
答案 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)
以下是制作启动页面的一些介绍:
http://www.barebonescoder.com/2010/04/a-simple-android-splash-screen/
http://blogingtutorials.blogspot.com/2010/11/splash-graphics-activity-in-android.html
答案 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>