在运行时更改 Android 上的渐变背景颜色

2023-12-23

我正在尝试使用 Drawable 背景,到目前为止还没有遇到任何问题。

我现在尝试在运行时更改渐变背景颜色。

不幸的是,似乎没有 API 可以在运行时更改它。甚至不尝试 mutate() 可绘制对象,如下所述:可绘制突变 http://android-developers.blogspot.com/2009/05/drawable-mutations.html

示例 XML 如下所示。正如预期的那样,它有效。

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <gradient
        android:startColor="#330000FF"
        android:endColor="#110000FF"
        android:angle="90"/>
</shape>

遗憾的是,我想要一个包含各种颜色的列表,并且必须在运行时以编程方式更改它们。

还有另一种方法可以在运行时创建渐变背景吗?也许甚至完全不使用 XML?


是的!找到办法了!

不得不忘记 XML,但我是这样做的:

在我的 getView() 重载函数(ListAdapter)上,我只需要:

    int h = v.getHeight();
    ShapeDrawable mDrawable = new ShapeDrawable(new RectShape());
    mDrawable.getPaint().setShader(new LinearGradient(0, 0, 0, h, Color.parseColor("#330000FF"), Color.parseColor("#110000FF"), Shader.TileMode.REPEAT));
    v.setBackgroundDrawable(mDrawable);

这给了我与上面的 XML 背景相同的结果。现在我可以以编程方式设置背景颜色。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在运行时更改 Android 上的渐变背景颜色 的相关文章

随机推荐

  • Angular 6 库共享样式表

    如何设置 index scss 并将变量 混合等的全局样式表导入到 Angular 6 库中 Angular CLI 生成一个带有根组件和组件 scss 的 lib 但添加或导入到根组件的样式不可用于子组件 默认情况下 封装样式是有意义的
  • 在 SQL Server Management Studio 中将持久计算列标记为 NOT NULL

    在 SQL Server 2005 中可以创建一个既持久又定义为 NOT NULL 不能包含空值 的计算列 当使用像 Linq2Sql 这样的库时 如果我们想避免大量的手动工作来确保我们的代码列 始终 具有值 那么第二个属性非常重要 使用直
  • Android 1.5 Gradle Sync 从未完成

    我最近升级到 Android Studio 1 5 然而 更新后 Gradle 陷入 正在刷新 项目 Gradle 项目 并且永远不会停止 以前版本的 Android Studio 运行得很好 我该如何解决这个问题 我使用的是 Ubuntu
  • 在轴上手动定位刻度 - D3

    我正在使用 d3 制作图表 我想将刻度线放在 xAxis 上我指定的位置 例如 如果我想要以下位置的刻度线 11 0 11 18 30 42 我该怎么做 Thanks 请参阅文档 axis tickValues https github c
  • 如何限制仅从 NLB 对 EC2 的访问

    Question 有没有办法确保访问仅来自特定的 NLB 在目前NLB的限制下 不知道有没有办法 局限性 AWS Network Load Balancer NLB 没有安全组 SG 因此无法使用 SG 来验证源是否为 NLB NLB 实例
  • 计算某个点与英国海岸之间的最小距离

    我一直在遵循所示的示例here https stackoverflow com questions 21295302 calculating minimum distance between a point and the coast 但对
  • 永久修改App.config C#

    好的 所以我正在尝试使用appSettings中的元素App Config文件来确定使用哪种存储 这是我的应用程序配置 file
  • Google 一键登录 (YOLO) + Firebase 身份验证?

    我注意到 Google 已重新开放Google 一键登录和自动注册 https developers google com identity one tap web由于安全问题而暂停后 我一直在尝试了解如何使其与 Firebase Auth
  • 如何在unix中使用mv命令重命名多个文件?

    我正在尝试用扩展名重命名多个文件xyz n 到扩展xyz 例子 mv xyz 1 to xyz 但错误是这样的 xyz No such file or directory 不知道 mv 是否可以直接使用 工作 但这可以工作 find nam
  • 如何解决 NuGet.targets(124,5): 错误:值不能 > null。 (参数“文件夹名称”)错误?

    在构建项目时我收到此错误 错误 NETSDK1004 资产文件 未找到 J Test core fx core obj project assets json 运行 NuGet 包恢复生成此文件 FxCore C 程序 文件 dotnet
  • OpenGL VAO 最佳实践

    我面临着一个我认为依赖于 VAO 的问题 但我不确定 我不确定 VAO 的正确用法 我在 GL 初始化期间所做的只是一个简单的 glGenVertexArrays 1 vao 随后是一个 glBindVertexArray vao 后来 在
  • Java 中的 Skyscanner API 示例

    我正在尝试用 Java 构建一个请求 Skyscanner API 的示例 但我做错了一些事情 skyscanner API 测试的链接 http business skyscanner net portal en GB Documenta
  • 使用 OpenXML 将图片插入到 Word 文档的页眉

    我知道也有同样的问题here https stackoverflow com questions 17726196 how to insert image into header of openxml word document 但是答案有
  • 无法加载文件或程序集“System.Windows.Interactivity”[重复]

    这个问题在这里已经有答案了 我刚刚添加了 System Windows Interactivity 程序集 XamlParse 在运行时抛出异常 无法加载文件或程序集 System Windows Interactivity PublicK
  • 迁移 UIWebView 到 WKWebView

    在我的 iOS 应用程序中 我尝试将旧的 UIWebView 代码迁移到 WKWebView 因为理论上 WKWebView 比 UIWebView 更快 更高效 我看过很多教程 比如here https stackoverflow com
  • 如何使用RedBeanPhp批量插入?

    我希望有一个关于如何在 redbeanphp 中批量插入新 bean 而不循环遍历每个实例的示例 它在此处显示了创建和保存 bean 的示例 http redbeanphp com manual create a bean http red
  • 如何使用 jcheck 框和多项选择创建 jcombobox

    我想创建带有复选框和多项选择的 JComboBox 我在渲染 jlist 后创建了一个带有复选框的列表 我不知道如何用 jcombobox 渲染它 或者是否可以将 jlist 作为下拉列表 如组合框 对于 jlist 渲染 我使用以下代码
  • 如何在当前时间的打印输出中获得更高的精度(秒的几分之一)?

    我尝试了几种方法来打印时间system clock但除了整秒之外我什么也得不到 system clock time point now system clock now std time t now c system clock to ti
  • PHP 相当于 Python 的 __name__ == "__main__"?

    根据标题 PHP 是否有相当于 name main 是否有一些东西可以同时适用于通过命令行和网络请求执行的脚本 或者是否需要自定义函数 对于那些不熟悉 Python 的人来说 name main 允许您定义一个模块文件 并且还有一些允许您运
  • 在运行时更改 Android 上的渐变背景颜色

    我正在尝试使用 Drawable 背景 到目前为止还没有遇到任何问题 我现在尝试在运行时更改渐变背景颜色 不幸的是 似乎没有 API 可以在运行时更改它 甚至不尝试 mutate 可绘制对象 如下所述 可绘制突变 http android