java - Android上具有自定义颜色的布局中的圆角
问题描述
我的可绘制对象的形状和颜色有一个 xml :
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/light_red"/>
<corners android:radius="10dp"/>
</shape>
但是我想将此可绘制对象用作全局对象,例如在使用它时将角变圆,但能够更改backgroundColor
.
但是当我试图以backgroundColor
编程方式更改时,它会覆盖我想要的颜色,但它也会覆盖变平的圆角。
目前,如果我想要不同颜色的圆角,我需要创建多个 XML 文件,只需要android:color
更改。
解决方案
要以编程方式更改形状中全局定义的颜色,请使用以下命令:
findViewById(R.id.your_xml_element).getBackground().setColorFilter(Color.BLUE, PorterDuff.Mode.SRC_ATOP);
推荐阅读
- string - 如何在 POSIX 系统上将 OsString 转换为 u16?
- python - 如果我不直接使用 python 模块,我应该导入它吗
- c# - 在父类中调用带参数的类构造函数
- ruby-on-rails - 如何显示多种帖子类型?(Ruby on Rails)
- python - dictfetchall() 没有给我的查询结果
- swift - 如何在 Swift for Xcode 11.5 中将多个数据项添加到选择器视图
- javascript - 调用函数时如何暂停 MutationObserver
- javascript - 转义 HTML 使某些属性具有空值
- java - Try and catch 语句不会让我再试一次
- javascript - 如何使动态对象属性可用于子组件 v-for 中的父组件