在Android中,关于如何使状态栏透明化的问题

来源:互联网 发布:悟空传中的网络元素 编辑:程序博客网 时间:2024/05/16 17:03

前言:

有时,我们需要使状态栏透明化,从而能够自适应我们的Activity,给用户的体验是:activity和状态栏已融为一体,下面来简要介绍一下

如何使状态栏透明化


未设置之前的效果:


设置之后的效果:


注:在这里仔细看第二幅图,其状态栏还是存在的,只不过背景变为了透明,仔细看,可以看到字体变为了白色;


方法一:xml配置

在res/values/style.xml中添加一个style,如:

<!--这里通过继承主题来达到隐藏标题栏:parent="Theme.AppCompat.Light.NoActionBar"然后接下来,我们需要做的就是使状态栏透明化:(API level 19才可以这么设置)<item name="android:windowTranslucentStatus">true</item>--><style name="ThemeTranslucent" parent="Theme.AppCompat.Light.NoActionBar">    <item name="android:windowTranslucentStatus">true</item></style>
然后在Manifest.xml中引用style,如下所示:

<application    android:allowBackup="true"    android:icon="@mipmap/ic_launcher"    android:label="@string/app_name"    android:supportsRtl="true"    android:theme="@style/ThemeTranslucent">...</application>


方法二:代码配置

public class MainActivity extends AppCompatActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        /**         * 隐藏标题栏         * **/        getSupportActionBar().hide();        /**         * 设置状态栏为透明         * **/        getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);        setContentView(R.layout.activity_main);    }}


源码示例

0 0