android studio透明色,Android studio技术之透明状态栏效果的实现

透明状态栏的效果有很多的app都有用到,效果图如下:

0818b9ca8b590ca3270a3433284dd417.png

上图中是qq的消息界面,可以看到顶部的状态栏是透明化的。

接下来是实现步骤:

首先在创建一个类,这里命名为ImmersiveStatusbar.java,代码实现如下:

package com.xiaoke.accountsoft.util;

import android.app.ActionBar;

import android.graphics.Color;

import android.os.Build;

import android.view.View;

import android.view.Window;

/** * Created by zouqi on 2017/4/15. */

public class ImmersiveStatusbar {

private static ImmersiveStatusbar immersiveStatusbar;

// 构造函数私有化

private ImmersiveStatusbar() {

}

// TODO: 2017/4/17 单例模式

public static ImmersiveStatusbar getInstance() {

if (immersiveStatusbar == null) {

// 加锁提高使用效率

synchronized (ImmersiveStatusbar.class) {

if (immersiveStatusbar == null) {

immersiveStatusbar = new ImmersiveStatusbar();

}

}

}

return immersiveStatusbar;

}

/*** * 状态栏透明化 *@param window Window对象 *@param actionBar ActionBar对象 */

public void Immersive(Window window, ActionBar actionBar) {

if (Build.VERSION.SDK_INT >= 21) {

View view = window.getDecorView();

// TODO: 2017/4/13 两个FLAG一起使用表示会让应用的主体内容占用系统状态栏的时空间

int option = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE;

view.setSystemUiVisibility(option);

// 将状态栏设置成透明色

window.setStatusBarColor(Color.TRANSPARENT);

}

// 将ActionBar隐藏

actionBar.hide();

}

}

上述代码较为简单,均有注释,理解起来不难。

但是需要注意的是我这里先进行了一层if判断,只有系统版本大于或等于5.0的时候才会执行上面的关键代码

另外注意:

0818b9ca8b590ca3270a3433284dd417.png

调用上图所示标注的方法时需要导入V7包,不然会找不到该方法。

导入很简单,在gradle文件中添加依赖即可,如下图:

0818b9ca8b590ca3270a3433284dd417.png

然后在你的活动类里面执行如下图所示的方法即可:

0818b9ca8b590ca3270a3433284dd417.png

即活动设置使用的布局文件之后紧接方法:ImmersiveStatusbar.getInstance().Immersive(getWindow(), getActionBar());

这里要传入两个参数,一个是Window对象和ActionBar对象。

最后运行项目效果图如下所示:

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

透明状态栏效果成功的实现了。

================================================================

每天进步一点点!加油!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值