Android渐变图形颜色变化

3

我有一个形状可绘制对象在drawable文件夹中。以下是XML结构:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <gradient 
        android:startColor="#4D0418" 
        android:centerColor="#5F031D"
        android:endColor="#7D0227" 
        android:angle="-90" />
</shape>  

我想在运行时从Java代码中更改startColor、centerColor和endColor。如何更改?


你应该可以使用Java反射来做到这一点。 - Jens
1个回答

12

很遗憾,目前没有相关的API可以实现这个功能。但我会在未来的Android版本中加入该API。


1
有没有办法在不使用任何XML的情况下,通过Java代码重新创建总可绘制(total drawable)呢? - dev_android
我已经创建了一个GradientDrawable,它是<gradient></gradient>的替代品。但是我该如何将其设置为任何形状?我应该使用ShapeDrawable吗?如果是这样,那么我该如何将我的GradientDrawable设置为ShapeDrawable? - dev_android
2
GradientDrawable是<shape/>和<gradient/>的替代品。 - Romain Guy
GradientDrawable似乎没有与ShapeDrawable的setShaderFactory方法相当的东西,(可以用于创建具有超过3种颜色的渐变)。 嗯。 :-/ - Dr. Wily's Apprentice
这似乎是在API 16中。 - yincrash

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接