我必须使用渐变xml文件。
第一个渐变文件
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient
android:angle="225"
android:endColor="#53D671"
android:startColor="#46C0AF" />
第二个渐变文件
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient
android:angle="225"
android:endColor="#5C2678"
android:startColor="#FF4A5A" />
我也有渐变动画xml文件
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot="false">
<item
android:drawable="@drawable/first_gradient"
android:duration="6000"/>
<item
android:drawable="@drawable/second_gradient"
android:duration="6000"/>
我尝试在此布局中更改渐变背景(使用两个渐变文件)
AnimationDrawable animationDrawable = (AnimationDrawable) layout.getBackground();
animationDrawable.setEnterFadeDuration(6000);
animationDrawable.setExitFadeDuration(6000);
animationDrawable.start();
正如您所看到的,背景在6秒后发生了变化。我的问题是。是否可以实时检查渐变背景颜色? 我在这个布局上有一个imageView,我想在realTime中用colorFilter改变背景颜色
是否可以在Android中使用?
答案 0 :(得分:0)
我以编程方式更改视图背景渐变颜色。
view.setBackground(getGradient(startColor, endColor))
基于startColor的getGradient函数和渐变的endColor(也可以为渐变提供两个以上的值)。
public GradientDrawable getGradient(int startColor, int endColor){
GradientDrawable gd = new GradientDrawable();
gd.setOrientation(GradientDrawable.Orientation.LEFT_RIGHT);
gd.setColors(new int[] {startGDColor, endGDColor});
gd.setCornerRadius(0f);
return gd;
}