Android StatusBar 透明化方法(不同的版本适配)

透明状态栏(StatusBar)的全适配

状态栏指定android手机上顶部显示手机状态信息的位置。

透明状态栏是android 自4.4开始新加入的功能,他可以是状态栏根据我们自己想要的颜色进行定义,使titleBar能够和状态栏融为一体,增加沉浸感。

咱们需要对不同的版本适配StatusBar,下面咱们一个一个看

values/styles.xml

<resources>
  <style name="Theme.AppTheme.TranslucentStatusBar" parent="Theme.AppCompat.Light.NoActionBar" />
</resources> 

values-v19/styles.xml

<resources>
  <style name="Theme.AppTheme.TranslucentStatusBar" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="android:windowTranslucentStatus">true</item>
  </style>
</resources> 

values-21/styles.xml

<resources>
  <style name="Theme.AppTheme.TranslucentStatusBar" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="android:statusBarColor">@android:color/transparent</item>
  </style>
</resources>

values-23/styles.xml

<resources>
  <style name="Theme.AppTheme.TranslucentStatusBar" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="android:statusBarColor">@android:color/transparent</item>
    <item name="android:windowLightStatusBar">true</item>
  </style>
</resources> 

具体使用

public class ImagePreActivity extends AppCompatActivity { 

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
      findViewById(android.R.id.content).setSystemUiVisibility(
          View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
    }
    setContentView(R.layout.activity_image_pre_layout);
  }
} 
<activity
  android:name=".ImagePreActivity"
  android:theme="@style/Theme.AppTheme.TranslucentStatusBar" /> 

显示效果

4.3以下

4.4

5.0

6.0

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Android最新版本开发环境搭建图文教程

    本文只是写了如何配置JDK,以及adt-bundle的配置.对于以前的adt-bundle的版本,会自带CPU/ABI系统镜像,经过本文所描述的两个步骤后可以直接创建AVD,但是从官网下载的最新的adt-bundle并没有带镜像,下篇文章讲述如何下载多个Android版本平台以及下载镜像. 一.JDK的下载,安装与环境变量配置 1)JDK的下载 a, 输入网址https://www.oracle.com/进入oracle官网,如下,点击Downloads栏下的Java SE,进入Java SE的

  • Android获取应用版本号与版本名称

    使用包管理器 package com.liunan.myfirstapp.util; import android.content.Context; import android.content.pm.ApplicationInfo; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; /** * Created by 刘楠 on 2016-03-22. */ public class

  • 解析Android获取系统cpu信息,内存,版本,电量等信息的方法详解

    Android获取系统cpu信息,内存,版本,电量等信息 1.CPU频率,CPU信息:/proc/cpuinfo和/proc/stat 通过读取文件/proc/cpuinfo系统CPU的类型等多种信息.读取/proc/stat 所有CPU活动的信息来计算CPU使用率 下面我们就来讲讲如何通过代码来获取CPU频率: 复制代码 代码如下: package com.orange.cpu; import java.io.BufferedReader;import java.io.FileNotFound

  • Android程序版本更新之通知栏更新下载安装

    Android应用检查版本更新后,在通知栏下载,更新下载进度,下载完成自动安装,效果图如下: •检查当前版本号 AndroidManifest文件中的versionCode用来标识版本,在服务器放一个新版本的apk,versioncode大于当前版本,下面代码用来获取versioncode的值 PackageInfo packageInfo = context.getPackageManager().getPackageInfo(context.getPackageName(), 0); int

  • Android获取手机的版本号等信息的代码

    本文实例分享了Android获取手机系统版本等信息的方法,供大家参考,具体内容如下: 第一种代码: String phoneInfo = "Product: " + android.os.Build.PRODUCT; phoneInfo += ", CPU_ABI: " + android.os.Build.CPU_ABI; phoneInfo += ", TAGS: " + android.os.Build.TAGS; phoneInfo +=

  • Android编程获取包名,版本信息及VersionName名称的方法

    本文实例讲述了Android编程获取包名,版本信息及VersionName名称的方法.分享给大家供大家参考,具体如下: 话不多说,直接上代码,此处,主要是在版本升级的时候,使用较多. private String getAppInfo() { try { String pkName = this.getPackageName(); String versionName = this.getPackageManager().getPackageInfo( pkName, 0).versionNam

  • 获取android4.0版本sdcard路径示例

    复制代码 代码如下: @SuppressLint("NewApi")//你懂的private File findSDCARD() { boolean b = Environment.MEDIA_MOUNTED.equals(Environment   .getExternalStorageState()); if (!b) return null; File extFile = Environment.getExternalStorageDirectory(); File[] file

  • 详解Android版本适配:9.0 Pie

    一.前言 本文主要是从官方文档中筛选出一些常见的适配项,若有任何纰漏或需要补充的,欢迎大家在评论区指出. 二.版本适配 1. 限制 HTTP 网络请求 Android 9.0 中限制了 HTTP(明文传输)网络请求,若仍继续使用HTTP请求,则会在日志中提示以下异常(只是无法正常发出请求,不会导致应用崩溃): java.net.UnknownServiceException: CLEARTEXT communication to xxx not permitted by network secu

  • Android获取手机型号/系统版本号/App版本号等信息实例讲解

    MainActivity如下: 复制代码 代码如下: package cn.testgethandsetinfo; import android.os.Bundle; import android.text.TextUtils; import android.widget.TextView; import android.app.Activity; import android.content.Context; import android.content.pm.PackageInfo; imp

  • Android通过aapt命令获取apk详细信息(包括:文件包名,版本号,SDK等信息)

    公司运维问我怎么在windows上安装模拟器,我你说你安装模拟器干什么?他说,我安装模拟器查看app的包名这些信息做统计. 我顿时想,有必要这样折腾么? 我然后就给他装了Android SDK通过build-tools下面的aapt.exe文件执行命令即可得到所有apk信息. aapt命令 aapt l[ist] [-v] [-a] file.{zip,jar,apk} List contents of Zip-compatible archive. aapt d[ump] [--values]

  • android 版本检测 Android程序的版本检测与更新实现介绍

    做个网站的安卓客户端,用户安装到自己手机上,如果我出了新版本怎么办呢?要有版本更新功能. 本来版本检测最好可以自动进行.但如果每次开启程序,都要先检测一轮,是一种浪费,毕竟版本更新是小概率的事情.或许可以程序开启的时候,判断一下时间,单日就检测,双日就不检测,或者随机什么的,降低一下检测的频率? 我采取的做法是将检测功能做到了菜单上,用户有需要,就手动打开自己检测一下.反正我们这个是网站客户端,有版本更新,在网站上发个通告就行了. 版本检测与更新有以下几个关键步骤: 1.检测有无新版本 2.下载

随机推荐