Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/211.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android渐变可绘制颜色变化_Android_Colors_Gradient_Shape - Fatal编程技术网

Android渐变可绘制颜色变化

Android渐变可绘制颜色变化,android,colors,gradient,shape,Android,Colors,Gradient,Shape,我在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" andr

我在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。如何进行更改?

不幸的是,没有API来执行此操作。我将在未来的Android版本中添加一个。

您应该可以使用Java反射来完成。是否有必要在不使用任何XML的情况下通过Java代码重新创建总体可绘制性?我已经创建了一个GradientDrawable,它可以替代。但是我怎样才能把它设置成任何形状呢?我应该使用ShapeDrawable吗?如果是,那么如何将GradientDrawable设置为ShapeDrawable?GradientDrawable是这两者的替代品,GradientDrawable似乎没有任何与ShapeDrawable的setShaderFactory方法等效的内容。嗯。:-/这似乎是在。