前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >android 白屏

android 白屏

作者头像
android_薛之涛
发布2018-09-12 10:52:50
1.1K0
发布2018-09-12 10:52:50
举报
文章被收录于专栏:Android-薛之涛Android-薛之涛

从首篇介绍我为什么写文章到现在已经过去好久.......(懒),但从此刻开始,不出意外情况每周给大家至少写一篇文章,就按平时app开发流程以及本人遇到的问题,从app欢迎页面开始吧!

一:为什么会有欢迎页面?

使用欢迎界面(也叫启动页)的目的是:“缓冲”,在用户首次进入app,app总要去服务端获取部分数据,而获取数据是需要时间的,开发者为了不让用户干等,就设计欢迎界面做缓冲,等获取数据完毕就进行下一步操作,当然也有别的目的,如:宣传推广广告等。

二:欢迎页面之前可能遇到的问题?

1.我遇到过用户点击进入app,出现白屏。

原因:出现的原因:(1)启动页进入onCreate()里的setContentView()前后布局进行了太多的操作.

                                (2)如果有application,也可能是application进行了太多初始化操作,解决办                                  法:(2.1)从精简application的代码入手,每个人视情况而定。

                                    (2.2)在application的theme下的style标签下添加一个item标签< item name="android:windowIsTranslucent" >true,设置这个属性后如果有如果原来有切换动画的话,这个动画会消失。

    ok,那我们先来考虑启动页布局耗时太长的解决方法。

    方法一:给启动页设置theme.(不推荐),原因:这张splash图片是写在theme中的,图片的内存释放不掉。

直接上图吧:

AndroidMainfest.xml设置:

style中,都有注释。

<style name="Theme.Start" parent="Theme.AppCompat.Light.NoActionBar">

<item name="android:windowIsTranslucent" >true</item>

<item name="name="android:windowBackground">你自己的背景图</item>

<style/>

最后onCreate()

View view = View.inflate(this, R.layout.activity_welcome,null);

//取消状态栏,全屏

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,

        WindowManager.LayoutParams.FLAG_FULLSCREEN);

setContentView(view);

第二种方法:注意此方法还有几毫米的白屏但效果已经很好了,对内存影响小。

//在activity的onCreate方法的super前给window设置背景getWindow().getDecorView().setBackgroundResource(R.drawable.welcome);

ok,介绍完毕,先讲这么多,别急,慢慢来。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018.02.25 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档