沉浸式安卓应用设计简单又好用

转载 2015年11月20日 19:40:16

这个特性是andorid4.4支持的,最少要api19才可以使用。下面介绍一下使用的方法,非常得简单:

 

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class MainActivity extends Activity {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        //透明状态栏
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
        //透明导航栏
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
 
    }
 
 
}

 

 

?
1
2
3
4
//透明状态栏
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
//透明导航栏
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);

 

只要加入这两行代码,就可以实现沉浸式通知栏了。效果如图:

\

 

给大家看看这个界面的布局:

 

?
1
2
3
4
<linearlayout android:background="#ffffff" android:layout_height="match_parent" android:layout_width="match_parent" android:orientation="vertical" tools:context=".MainActivity" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools">
 
 
    <textview android:background="#009959" android:layout_height="100dp" android:layout_width="match_parent"><button android:background="#ff669d/" android:layout_height="50dp" android:layout_width="100dp"></button></textview></linearlayout>

是一个垂直的流布局,但这样,其实还是有问题的,我在textView里面加一些文字,就是绿色的那一块,大家看一下效果:

 

\

大家看到了吧,文字和状态栏重叠在一起了,这肯定是不行的,此时需要添加下面的代码:

 

 

?
1
2
android:fitsSystemWindows=true
android:clipToPadding=true

 

 

?
1
2
3
4
5
<linearlayout android:background="#ffffff" android:cliptopadding="true" android:fitssystemwindows="true" android:layout_height="match_parent" android:layout_width="match_parent" android:orientation="vertical" tools:context=".MainActivity" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools">
 
 
 
    <textview android:background="#009959" android:layout_height="100dp" android:layout_width="match_parent"><button android:background="#ff669d/" android:layout_height="50dp" android:layout_width="100dp"></button></textview></linearlayout>

大家看红色的那部分,加入那两行以后,界面仍然会是沉浸式的,但状态栏那部分,就不会再重叠了,像加了padding一样,如下图:

 

\

大家看图,绿色的textView和红色的一个button都被下移了,状态栏是白色的,是背景linearLayout的颜色。很明显,这也不是我们想要的,我们希望状态栏和我们放在顶部的控件是同一个颜色,同时,控件内容也不和状态栏重复,其实,只要把那两行代码放到我们顶部的控件就可以了。代码如下:

 

 

?
1
2
3
4
5
<linearlayout android:background="#ffffff" android:layout_height="match_parent" android:layout_width="match_parent" android:orientation="vertical" tools:context=".MainActivity" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools">
 
 
 
    <textview android:background="#009959" android:cliptopadding="true" android:fitssystemwindows="true" android:layout_height="100dp" android:layout_width="match_parent" android:text="你好,请问你有男朋友吗/"><button android:background="#ff669d/" android:layout_height="50dp" android:layout_width="100dp"></button></textview></linearlayout>
就是那两行红色的代码,放在绿色的textView上,这样,就会是下面的效果:

 

这就是我们想要的了。

 

相关文章推荐

安卓开发实现应用程序与系统的沉浸效果

在ios的所有应用中系统栏和应用在风格和色彩上都非常统一,显得非常唯美。那么安卓是否也能实现相同的效果呢?答案是肯定的。在安卓4.4(API19)以后系统开始支持沉浸效果,MIUI通过Xposed框架...

安卓异步任务类AsyncTask——突出一个简单、好用

前言:AsyncTask是android提供的轻量级异步任务类(代码轻量级,系统资源占用并不是轻量级!),完整的封装了异步任务流程,这让我想起了Handler异步任务通信机制。两者对比起来,Async...

ToolBar、沉浸式状态栏的应用(简单粗暴)

一、toolbar的应用 依赖: compile ‘com.android.support:design:24.1.0’ styles.xml文件 @color/colorPri...

安卓沉浸式状态栏初体验

初次接触沉浸式,本文先从纯色入手。 安卓状态栏沉浸式从大于等于19即安卓4.4开始有了第一种实现方案即使用SystemBarTintManager: Window ...

安卓中沉浸式状态栏实现

安卓中沉浸式状态栏实现首先这种特性出现在安卓4.4以上,所以在做的这种功能的时候需要对系统的版本进行判断。随着版本的提高,在5.0的时候系统给我们开放了可以设置状态栏颜色的功能,所以对于5.0以上的相...
  • ongsky
  • ongsky
  • 2017年05月31日 19:38
  • 82

安卓沉浸式状态栏

安卓沉浸式状态栏是安卓4.4之后才出的,就是让手机最顶部的那条状态栏与app的设计风格融为一体。看两个图 左边是没有沉浸的,右边是有沉浸的 很明显感觉就不一样。 下面来说下这个沉浸式状态栏是怎么实现的...

安卓4.0通知栏沉浸式写法+自定义标题栏设置

沉浸式是安卓5.0之后通知栏开始和IOS一样了,然而4.0还没有变成沉浸式。 这篇来说下如何实现沉浸式通知栏 我看了许多的沉浸式写法,自己在实现的时候,也用了自己的方法。 首先创建项目,把 An...
  • g777520
  • g777520
  • 2016年05月13日 14:59
  • 2789

Android 安卓 4.4 沉浸式状态栏,导航栏

Android 4.4以后增加了沉浸式透明状态栏。打开沉浸模式的状态栏和主界面完全融为了一体,非常好看!...
  • fikry
  • fikry
  • 2016年08月14日 09:50
  • 690

安卓沉浸式状态栏延生与透明设置

一:延生 "android:windowTranslucentStatus">true 也可以在代码中实现(据说,在代码中实现兼容性更好,style 资源中设置的方式在某些国产手机厂商定制的系统中...

安卓高级9 沉浸式布局 获取状态栏高度等

Android 沉浸式状态栏、状态栏一体化、透明状态栏、仿iOS透明状态栏 http://blog.csdn.NET/jdsjlzx/article/details/50437779注:状态栏的字体颜...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:沉浸式安卓应用设计简单又好用
举报原因:
原因补充:

(最多只允许输入30个字)