2022 您所在的位置:网站首页 安卓开发字体颜色代码 2022

2022

2024-06-20 23:53| 来源: 网络整理| 查看: 265

一、布局文件里面定义一个ImageView。

二、默认的显示效果如下,有状态栏和TitleBar。

三、去掉TitleBar的方法:src\main\AndroidManifest.xml文件里面用这个theme,可以看到状态栏背景是黑的。

android:theme="@style/Theme.AppCompat.NoActionBar"

 

 三、把状态栏透明,图片是全屏显示了,如果设置代码成FLAG_FULLSCREEN ,就看不到状态栏里面的内容,图片全屏显示。效果如下。(状态栏不完全透明)

getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);//FLAG_FORCE_NOT_FULLSCREEN FLAG_FULLSCREEN FLAG_TRANSLUCENT_STATUS

 四、把状态栏背景完全透明。

public class MainActivity extends AppCompatActivity { public void setFullscreen(boolean isShowStatusBar, boolean isShowNavigationBar) { int uiOptions = View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY; if (!isShowStatusBar) { uiOptions |= View.SYSTEM_UI_FLAG_FULLSCREEN; } if (!isShowNavigationBar) { uiOptions |= View.SYSTEM_UI_FLAG_HIDE_NAVIGATION; } getWindow().getDecorView().setSystemUiVisibility(uiOptions); //隐藏标题栏 // getSupportActionBar().hide(); setNavigationStatusColor(Color.TRANSPARENT); } public void setNavigationStatusColor(int color) { //VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP if (Build.VERSION.SDK_INT >= 21) { getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); getWindow().setNavigationBarColor(color); getWindow().setStatusBarColor(color); } }

 

 

 五、上面的效果是全屏显示了,但是状态栏的字体是白色的,非常难看,现在要把状态栏的字体改成黑色。显示的效果如下:

private static void setAndroidNativeLightStatusBar(Activity activity, boolean dark) { View decor = activity.getWindow().getDecorView(); if (dark) { decor.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR); } else { decor.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE); } }

 六、修改之后的代码

package com.giada.giadademo; import androidx.appcompat.app.AppCompatActivity; import android.app.Activity; import android.graphics.Color; import android.os.Build; import android.os.Bundle; import android.view.View; import android.view.WindowManager; public class MainActivity extends AppCompatActivity { public void setFullscreen(boolean isShowStatusBar, boolean isShowNavigationBar) { int uiOptions = View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY; if (!isShowStatusBar) { uiOptions |= View.SYSTEM_UI_FLAG_FULLSCREEN; } if (!isShowNavigationBar) { uiOptions |= View.SYSTEM_UI_FLAG_HIDE_NAVIGATION; } getWindow().getDecorView().setSystemUiVisibility(uiOptions); //隐藏标题栏 // getSupportActionBar().hide(); setNavigationStatusColor(Color.TRANSPARENT); } public void setNavigationStatusColor(int color) { //VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP if (Build.VERSION.SDK_INT >= 21) { getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); getWindow().setNavigationBarColor(color); getWindow().setStatusBarColor(color); } } private static void setAndroidNativeLightStatusBar(Activity activity, boolean dark) { View decor = activity.getWindow().getDecorView(); if (dark) { decor.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR); } else { decor.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE); } } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); setFullscreen(true, true); setAndroidNativeLightStatusBar(this, true); } }

七、有价值的参考文章

Android沉浸式全屏讲解(状态栏、导航栏处理) - 简书

Android UI体验之全屏沉浸式透明状态栏效果 - 谢青 - 博客园

Android透明状态栏与状态栏文字颜色更改 - 简书

android全屏透明状态栏的坑 - 简书



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有