Android启动页白屏以及加欢迎页 |
您所在的位置:网站首页 › 设置倒计时的图片 › Android启动页白屏以及加欢迎页 |
Android启动页白屏以及加欢迎页
Manifest文件中给指定的入口Activity设置一个背景,当进入之后恢复默认背景,这样在显示界面之前都会显示那么被设置的背景,这样就提高了用户体验,至少等待主界面的过程中不是黑屏或者白屏. 1.解决启动页白屏 主题的设置,在styles.xml文件中添加以下代码 @drawable/startingwindow 在AndroidManifest.xml中给首页activity(第一个页面,一般是欢迎界面)设置自定义的theme 在Activity中恢复原有的style样式【否则的话,当activity的布局文件设置背景色为透明的时候,就会发现窗口的背景还是那张图片】 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setTheme(R.style.AppTheme);//恢复原有的样式 setContentView(R.layout.activity_main); } 2. 欢迎页欢迎界面的背景图片和启动页窗口背景图片(android:windowBackground)设置为相同的,Activity中不恢复原有的样式,那么这样就可以实现APP启动后白屏部分和欢迎界面是同一张背景图片。然后我发现状态栏是黑色的就加了沉浸式状态栏。 效果图 新建welcomeActivity布局加张图片 启动动画 import androidx.appcompat.app.AppCompatActivity; import android.content.Intent; import android.graphics.Color; import android.os.Build; import android.os.Bundle; import android.util.Log; import android.view.View; import android.view.Window; import android.view.WindowManager; import android.widget.TextView; import java.util.Timer; import java.util.TimerTask; import butterknife.BindView; import butterknife.ButterKnife; import butterknife.OnClick; public class WelcomeActivity extends AppCompatActivity { @BindView(R.id.tv_time) TextView mTvTime; private int duration = 3; //倒计时3秒 Timer timer = new Timer(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_welcome); ButterKnife.bind(this); initStatusBar(); init(); } protected void init() { /** * 第二个参数的意思是,当你调用该方法后,该方法必然会调用 TimerTask 类 TimerTask 类 中的 run() * 方法,这个参数就是这两者之间的差值,转换成汉语的意思就是说,用户调用 schedule() 方法后, * 要等待这么长的时间才可以第一次执行 run() 方法。即推迟多久执行 * 第三个参数的意思就是,第一次调用之后,从第二次开始每隔多长的时间调用一次 run() 方法。即执行多久多长时间 */ timer.schedule(task, 1000, 1000); } //沉浸式状态栏 public void initStatusBar() { Window window = this.getWindow(); //获取当前手机SDK版本号大于或等于Build.VERSION_CODES.KITKAT(安卓4.4)时: if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { //允许页面可以拉伸到顶部状态栏并且定义顶部状态栏透名 window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS | WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION); window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); window.setStatusBarColor(Color.TRANSPARENT);//是设置状态栏为全透明。 // window.setNavigationBarColor(Color.TRANSPARENT); //设置虚拟键为透明 //设置全屏显示, window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR); } ; } /** * 界面的跳转 */ private void jumpActivity() { startActivity(new Intent(WelcomeActivity.this, MainActivity.class)); finish(); } /** * 如果点击了,停止倒计时,直接跳转 */ @OnClick(R.id.ll_time) public void onClick(View v) { timer.cancel(); jumpActivity(); } private TimerTask task = new TimerTask() { @Override public void run() { runOnUiThread(new Runnable() { // UI thread @Override public void run() { duration--; Log.d("TTT", String.valueOf(duration)); mTvTime.setText(String.valueOf(duration)); if (duration public void run() { Intent intent = new Intent(WelcomeActivity.this, MainActivity.class); startActivity(intent); finish(); } }, 3000); |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |