第一句子网 - 唯美句子、句子迷、好句子大全
第一句子网 > Android设置透明状态栏以及隐藏状态栏

Android设置透明状态栏以及隐藏状态栏

时间:2021-03-19 20:29:55

相关推荐

Android设置透明状态栏以及隐藏状态栏

在很多情况下,我们都需要让项目的某个界面状态栏设置为透明或者直接隐藏起来,这样使我们的界面看起来整体美观大方一些。下面来给大家演示一下如何将Android状态栏设置为透明或者将状态栏隐藏起来。

我个人看博客是比较喜欢先看效果图,所以废话8多说,先上图:

默认效果 、半透明效果:

全透明效果、状态栏隐藏效果:

铁子们看到这个效果图舒服了吗?舒服了就撸起袖子干吧!

上代码:

我们先在res/values/colors.xml文件中添加透明以及半透明颜色属性。

<resources><color name="colorPrimary">#3F51B5</color><color name="colorPrimaryDark">#303F9F</color><color name="colorAccent">#FF4081</color><!--透明--><color name="transparent">#00000000</color><!--半透明--><color name="translucent">#22050505</color></resources>

然后新建一个StatusBar类,编写方法。这个类可以直接拿去用了。

这里我们需要编写两个初始化方法:一个是设置颜色,一个隐藏状态栏,满足不同界面的需求。

Android状态栏的设置要在版本5.0以上,所以我们的方法需要对手机SDK版本进行判断。

public class StatusBar {private Activity activity;//初始化activitypublic StatusBar(Activity activity){this.activity = activity;}//将状态栏设置为传入的colorpublic void setColor(int color){if (Build.VERSION.SDK_INT >= 21) {View view = activity.getWindow().getDecorView();view.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);activity.getWindow().setStatusBarColor(activity.getResources().getColor(color));}}//隐藏状态栏public void hide(){if (Build.VERSION.SDK_INT >= 21) {activity.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);}}//设置状态栏字体颜色public void setTextColor(boolean isDarkBackground){View decor = activity.getWindow().getDecorView();if (isDarkBackground) {//黑暗背景字体浅色decor.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);} else {//高亮背景字体深色decor.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);}}}

最后在我们的MainActicity中调用该方法就行,注意的是要在SetContentView()之前调用。

实例化我们的StatusBar类,然后填写参数,将我们当前界面的activity和想要设置的颜色color传进去,即可大功告成。我就不分开写了,一起贴出来。铁子们各取所需。

public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);StatusBar statusBar = new StatusBar(MainActivity.this);//设置颜色为半透明statusBar.setColor(R.color.translucent);//设置颜色为透明statusBar.setColor(R.color.transparent);//隐藏状态栏statusBar.hide();setContentView(R.layout.activity_main);}}

最后喜欢的可以关注一下我!我会一直更新Android的一些知识,谢谢大家(=v=)~

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。