Android开发状态栏和导航栏透明
根据我自己的经历书写本文,网上一搜一大堆这类的文章,在我使用的过程中,其实他们有些方法使用的,
笨就在我之前为了达到那种将近全屏透明的效果,起初先把整个界面布局下滑至状态栏下方 ,
android:layout_marginTop="20dp"
实际上在这里状态栏已经是透明效果了,但是为什么还是显示灰色或者黑色呢?
原因就是:
先前我把整个布局下移了20dp,正好是状态栏的高度,而系统布局的背景颜色就是黑色或者浅灰色的,那么通过透明的状态栏看到的是系统布局的背景,那就是浅灰色或者黑色的,没毛病.
解决方办法
对于我自己的经历,解决方法那是很简单了,就把之前下移的布局移上去,去掉这段代码就可以啦,
我感觉自己都好笨
android:layout_marginTop="20dp"
变透明的方法
/**
* 针对布局的工具
*/
public class ActivityUtil {
/**
* 全局window
*/
public static Window globalWindow;
/**
* 设置华为手机底部导航栏透明
*/
public static void setBottomNavbarTransparent(){
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
if (globalWindow!=null) {//FLAG_TRANSLUCENT_NAVIGATION // FLAG_TRANSLUCENT_STATUS
globalWindow.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
}
}
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ActivityUtil.globalWindow = getWindow();//获取全局window
ActivityUtil.setBottomNavbarTransparent();//设置华为手机底部透明
initData();//初始化页面数据(应该读取上一次最后存储的数据)
LogUtil.d(TAG,"onCreate :");
}
看效果图