android设置linearlayout布局的背景颜色,怎么动态改变背景颜色?

android设置linearlayout布局的背景颜色,怎么动态改变背景颜色?,第1张

1、开始打开Android IDE,这里以常用的Android Studio软件的3.2版本为例,然后可以新建一个工程项目,也可以使用当前已经存在的工程,点击后等待整个项目加载完毕再进行后续的 *** 作。

2、稍等片刻,等待整个项目都加载进内存以及Gradle同步成功,如果不成功请先检查相关配置或者添加国内镜像以及源之后再试一次,直到没有错误产生,从而完成项目重构的 *** 作。

3、在左侧导航栏定位到Android-app-res-layout,然后在文件夹的空白处右键,选择新建一个资源文件New-resource file。

4、在d出的新建资源文件对话框中,在上方的File name中属于欲创建输出资源文件的名称,注意只能包含小写字母以及下划线,这里以“ln_layout”为例,完成后点击确认。

5、稍等片刻,即可看到系统为我们自动创建了一个默认的layout输出资源文件,其中只包含了标题栏,由于默认是ConstraintLayout所以还需要进行修改。

6、首先将布局类型修改为线性布局LinearLayout,然后添-android:background="#50FFFFFF",前面的50表示透明度为50%即可。

7、确认代码无误后,即可在预览窗口中看到结果,表明我们成功地将布局的背景更改成了50%的透明度。

Android开发中,经常需要实现下图状态栏的效果,类似于沉浸式状态栏,但这里仅仅是讨论设置状态栏的颜色和状态栏上面文字、图标的颜色的方法

Android 4.4(API 19)之后,就提供了修改状态栏颜色的方法,但是在 Android 6.0(API 23)之后,才支持修改状态栏上面的文字和图标颜色,默认是白色的。所以会导致一个问题,在 4.4 到 6.0 之间的系统,状态栏设置为浅色的话,状态栏上面白色的文字和图标会看不清,像下面这样:

有一些第三方的系统提供了设置状态栏和状态栏文字、图标颜色的方法,比如小米的MIUI和魅族的Flyme,所以考虑了下比较好的实现方式是:

当然,这里面也会有坑,比如 MIUI 提供的修改状态栏字体颜色方法会跟 Android 系统自带的方法冲突,官方说明如下: 关于MIUI状态栏字符颜色逻辑调整说明

经过网上的资料和自己的尝试,MIUI 系统还是同时使用 MIUI 提供的方法和 Android 系统自带的方法来修改状态栏字体颜色比较保险。

基于上面的思考,封装了设置 Android 4.4 以上系统状态栏颜色和状态栏字体、图标颜色的方法:

要在 Application Theme 加上 <item name="android:fitsSystemWindows">true</item> ,不然页面会顶到状态栏上面,或者在 Activity 的布局里面加上 android:fitsSystemWindows="true" 和 android:clipToPadding="false" 也可以。

最终实现的效果如下:

大家有更好的方案可以告诉我~


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11336559.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存