这篇文章主要介绍Android Studio如何实现透明状态栏,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
Android是一种基于Linux内核的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由美国Google公司和开放手机联盟领导及开发。
//插入到OnCreate()中 if(Build.VERSION.SDK_INT >= 21) { Window window = getWindow(); window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS | WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION); window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_LAYOUT_STABLE); window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); window.setStatusBarColor(Color.TRANSPARENT); window.setNavigationBarColor(Color.TRANSPARENT);
以下是效果图
我们发现由于背景是浅色的,状态栏改为透明后状态栏中的内容不好读出,那么我们可以把状态栏中的文字颜色改为深色
public void changeStatusBarTextColor(Window window, boolean isBlack) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { View decor = window.getDecorView(); int flags = 0; if (isBlack) { //更改文字颜色为深黑色 flags = View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR; } else { //更改文字颜色为浅色 flags = View.SYSTEM_UI_FLAG_LAYOUT_STABLE; } decor.setSystemUiVisibility(flags); } } //记得调用。根据不同的背景色灵活调用函数
效果图如下
可以看到,文字变成了深黑色。
如果我们根本就不想要状态栏的话,可以使用如下函数
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @Override public void onWindowFocusChanged(boolean hasFocus) { super.onWindowFocusChanged(hasFocus); if (hasFocus && Build.VERSION.SDK_INT >= 19) { View decorView = getWindow().getDecorView(); decorView.setSystemUiVisibility( View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY); } } }
效果图如下,这时候需要滑动顶部才会显示状态栏
以上是“Android Studio如何实现透明状态栏”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。