这是我的颜色列表:
static ArrayList<Integer> colors;
static {
colors = new ArrayList<Integer>();
colors.add(Color.parseColor("#43CFCF"));
colors.add(Color.parseColor("#1C6E9B"));
colors.add(Color.parseColor("#AC88C0"));
colors.add(Color.parseColor("#EE5640"));
colors.add(Color.parseColor("#EFBF4D"));
}
这是我的可绘制数组:
static Drawable[] drawables;
static {
drawables = new Drawable[5];
drawables[0] = new GradientDrawable(Orientation.TL_BR, new int[]{colors.get(0), colors.get(1)});
drawables[1] = new GradientDrawable(Orientation.TL_BR, new int[]{colors.get(1), colors.get(2)});
drawables[2] = new GradientDrawable(Orientation.TL_BR, new int[]{colors.get(2), colors.get(3)});
drawables[3] = new GradientDrawable(Orientation.TL_BR, new int[]{colors.get(3), colors.get(4)});
drawables[4] = new GradientDrawable(Orientation.TL_BR, new int[]{colors.get(4), colors.get(0)});
}
现在,我正在迭代drawable [],并使用alpha动画交叉淡入淡出第二和第(n + 1)个drawable。
现在这就是我的布局:
我的布局是矩形(GradientDrawable.Orientation:Topleft-BottomRight),但此方向值不是从我的矩形的右上边界到左下边界设置我的渐变线(颜色之间)。如果我的布局是SquareShape,它将完美地工作。
所以我想以编程方式设置每个GradientDrawable的角度(反复试验)(不能使用xml,因为我在代码中创建drawables,否则我必须创建5个xmls,每个drawable一个)。
另外,如果我的方向是TL_BR,android:angle的值如何工作?角度是否随参考(轴)变化到TL_BR线(0弧度)。
请帮忙!
答案 0 :(得分:0)
尝试:
drawables[0] = new GradientDrawable(GradientDrawable.Orientation.TL_BR, new int[]{colors.get(0), colors.get(1)});
而不是:
drawables[0] = new GradientDrawable(Orientation.TL_BR, new int[]{colors.get(0), colors.get(1)});