一般启动页面的要求都是全屏显示,全屏显示可能会出现一个隐藏状态栏的动画,用户体验不是很好,现在基本都是做成透明的状态栏和ios 显示的效果一样,所以在此总结一下。下面是效果图,不是很明显是应为我全局设置的是透明的状态栏。
1.全屏显示
全屏显示有2中方法进行控制,一个通过代码,一个直接控制对应activity 的 theme.可能跳转的时候都存在隐藏过度的动画效果,个人感觉用户体验不是很好。
1.1 代码控制
public class FullScreenCode extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//去除标题栏
requestWindowFeature(Window.FEATURE_NO_TITLE);
//全屏展示
getWindow().setFlags(WindowManager.LayoutParams. FLAG_FULLSCREEN , WindowManager.LayoutParams. FLAG_FULLSCREEN);
setContentView(R.layout.activity_fullscreen_layout);
}
}
注意点:
1.去除标题栏和全屏展示需要在setContentView 之前调用
2.不能继承 AppCompatActivity,不然会报错,报错如下
1.2 AndroidManifest.xml 里面控制
xml 中
<activity android:name=".views.activity.FullScreenXml" android:theme="@style/AppTheme.Fullscreen"/>
style.xml
NoActionBar 是没有标题栏
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. -->
</style>
<style name="AppTheme.Fullscreen">
<item name="android:windowFullscreen">true</item>
</style>
2.透明状态栏
直接使用透明状态栏,用户体验会好一点。
直接在styles.xml中设置会出错
上面说明透明状态栏这个属性是只支持4.4以上的。所以需要新建一个v19的values的styles.xml
values-v19里面styles.xml中属性,增加了windowTranslucentStatus 的属性
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
</style>
<!-- <item name="android:windowTranslucentNavigation">true</item>-->
<style name="AppTheme.TranslucentStatus">
<item name="android:windowTranslucentStatus">true</item>
</style>
</resources>
具体的引用,在4.4以上设备会自动跑到v19里面去调用
<activity android:name=".views.activity.FullScreenXml4" android:theme="@style/AppTheme.TranslucentStatus"/>
最后效果图:
3.总结
特此总结归纳一下,因为今天准备写的时候,突然手生了,还需要看以前的代码或者去找资料。而且百度查到的资料,要么没有说明白,要么格式很乱,基本都是一样。
所以记录总结,方便以后回看。