android状态栏透明效果(android透明背景代码)

   2023-04-18 互联网0
核心提示:前言 原来做的效果,如下图(顶部有一条明显的橙色状态栏): 改过之后(顶部状态栏是透明的): 我发现网上写的一些文章,不够简洁明了,我整理了一下,复制粘贴一下就可以在项目中运用。 首先,在你的Activity中添加下面四个方法(

android状态栏透明效果(android透明背景代码)

前言

原来做的效果,如下图(顶部有一条明显的橙色状态栏):

改过之后(顶部状态栏是透明的):

我发现网上写的一些文章,不够简洁明了,我整理了一下,复制粘贴一下就可以在项目中运用。

首先,在你的Activity中添加下面四个方法(或者封装在一个工具类中)

protected void setStatusBarFullTransparent() { if (Build.VERSION.SDK_INT >= 21) {//21表示5.0 Window window = getWindow(); window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE); window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); window.setStatusBarColor(Color.TRANSPARENT); } else if (Build.VERSION.SDK_INT >= 19) {//19表示4.4 getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); //虚拟键盘也透明 //getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION); } } protected void setHalfTransparent() { if (Build.VERSION.SDK_INT >= 21) {//21表示5.0 View decorView = getWindow().getDecorView(); int option = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE; decorView.setSystemUiVisibility(option); getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); } else if (Build.VERSION.SDK_INT >= 19) {//19表示4.4 getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); //虚拟键盘也透明 // getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION); } } private View contentViewGroup; protected void setFitSystemWindow(boolean fitSystemWindow) { if (contentViewGroup == null) { contentViewGroup = ((ViewGroup) findViewById(android.R.id.content)).getChildAt(0); } contentViewGroup.setFitsSystemWindows(fitSystemWindow); } protected void setDrawerLayoutFitSystemWindow() { if (Build.VERSION.SDK_INT == 19) {//19表示4.4 int statusBarHeight = getStatusHeight(this); if (contentViewGroup == null) { contentViewGroup = ((ViewGroup) findViewById(android.R.id.content)).getChildAt(0); } if (contentViewGroup instanceof DrawerLayout) { DrawerLayout drawerLayout = (DrawerLayout) contentViewGroup; drawerLayout.setClipToPadding(true); drawerLayout.setFitsSystemWindows(false); for (int i = 0; i < drawerLayout.getChildCount(); i++) { View child = drawerLayout.getChildAt(i); child.setFitsSystemWindows(false); child.setPadding(0,statusBarHeight, 0, 0); } } } }

然后,在Activity的onCreate()方法中调用即可。示例如下:

Activity:

public class TestActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_test); setHalfTransparent(); setFitSystemWindow(false); } protected void setHalfTransparent()... protected void setStatusBarFullTransparent()... protected void setFitSystemWindow()... protected void setDrawerLayoutFitSystemWindow()...}

布局文件:

 
标签: 布局 红色 背景
反对 0举报 0 评论 0
 

免责声明:本文仅代表作者个人观点,与爱美生活网(本网)无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
    本网站有部分内容均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,若因作品内容、知识产权、版权和其他问题,请及时提供相关证明等材料并与我们留言联系,本网站将在规定时间内给予删除等相关处理.

  • 提升网站质量可以增加排名吗
    提升网站质量可以增加排名吗
    提升网站质量,可以增加网站的排名吗?答案是可以的。我们通过将网站深度优化,可以有效的增加网站的排名。工具/原料原创网站文章方法/步骤1网站文章数量当网站内的相关网站原创文章越多,百度对网站越友好,排名自然而然会上升。2网站文章原创性如果网站
  • 网店商品详情页怎么做(电商详情页作用及布局细则)
    网店商品详情页怎么做(电商详情页作用及布局细
    详情页的作用是什么?——可以有效的提升单品的转化率,能够直观的提升店铺的销售额,等同于盈利! 第一次见“有灵气有生命力”的这样的词来形容,看来这位卖家对详情页的理解不透彻呀。 请记住:你做淘宝的最终目标是为了赚钱! 不要用比较天真的想法,要
  • 谨防数据中心无序发展
    谨防数据中心无序发展
    国家发展改革委、工信部等四部门日前印发文件,推动数据中心和5G等新型基础设施绿色高质量发展,优化数据中心建设布局,并要求各地加强统筹指导力度,坚决避免数据中心盲目无序发展。数据中心作为支撑未来经济社会发展的战略资源和公共基础设施,已成为当前
  • 如何让两个div上下排列(三个div上中下布局)
    如何让两个div上下排列(三个div上中下布局)
    CSS引入 有哪些引入方式?通过link和@import引入有什么区别?(* ) CSS引入方式有4种 内联、内嵌、外链、导入 外链 link 除了可以加载css之外,还可以定义rss、rel等属性,没有兼容性问题,支持使用javas
  • 弥楼生物携手美东汇成布局国产生物耗材“大智造”
    弥楼生物携手美东汇成布局国产生物耗材“大智造
    据Research and Markets、Markets and Markets等咨询机构测算,全球生物制药设备+耗材整体市场规模在200亿美元左右,其中设备占比约46%,耗材占比约54%。另据测算,2021年国内生物制药上游耗材市场规模
    11-12
  • 前沿生物海外布局提速,跨入全球市场第二站
    前沿生物海外布局提速,跨入全球市场第二站
    近日,前沿生物(股票代码:688221.SH)发布了艾可宁®(通用名:艾博韦泰)获得柬埔寨药品注册证书的公告,这是继厄瓜多尔后,艾可宁®登陆的第二个海外国家。艾可宁®在柬埔寨上市获批,意味着前沿生物国际化的目标又前进了一步。产业化和国际化双
    10-19
点击排行