gpt4 book ai didi

android - 多色进度条

转载 作者:行者123 更新时间:2023-11-29 14:37:33 27 4
gpt4 key购买 nike

我想创建一个类似于 gmail 应用程序的进度条(中间进度条),它会改变颜色。我可以通过从 sdk/platforms 保留和更新 progress_indeterminate_horizo​​ntal.xml 来做到这一点。我不想使用动画(多色图像)。我想使用 xml 实现此目的(我想使用渐变)。任何帮助将不胜感激。

提前致谢

最佳答案

这是我的实现:绘制动画彩虹渐变。酷,如果我自己这么说的话。它不是基于 XML 的,但可以成为基于 XML 的,并且它确实使用了渐变。也许它会给你一些想法。

设置:

    pb = (ProgressBar) findViewById(R.id.progressbar_Horizontal);
GradientDrawable rainbow = new GradientDrawable(Orientation.LEFT_RIGHT,
new int[] {Color.RED, Color.MAGENTA, Color.BLUE, Color.CYAN, Color.GREEN, Color.YELLOW, Color.RED});

AnimationDrawable ad = getProgressBarAnimation();
pb.setBackgroundDrawable(ad);

和动画:

    private AnimationDrawable getProgressBarAnimation(){

GradientDrawable rainbow1 = new GradientDrawable(Orientation.LEFT_RIGHT,
new int[] {Color.RED, Color.MAGENTA, Color.BLUE, Color.CYAN, Color.GREEN, Color.YELLOW});

GradientDrawable rainbow2 = new GradientDrawable(Orientation.LEFT_RIGHT,
new int[] { Color.YELLOW, Color.RED, Color.MAGENTA, Color.BLUE, Color.CYAN, Color.GREEN});

GradientDrawable rainbow3 = new GradientDrawable(Orientation.LEFT_RIGHT,
new int[] { Color.GREEN, Color.YELLOW, Color.RED, Color.MAGENTA, Color.BLUE, Color.CYAN });

GradientDrawable rainbow4 = new GradientDrawable(Orientation.LEFT_RIGHT,
new int[] { Color.CYAN, Color.GREEN, Color.YELLOW, Color.RED, Color.MAGENTA, Color.BLUE });

GradientDrawable rainbow5 = new GradientDrawable(Orientation.LEFT_RIGHT,
new int[] { Color.BLUE, Color.CYAN, Color.GREEN, Color.YELLOW, Color.RED, Color.MAGENTA });

GradientDrawable rainbow6 = new GradientDrawable(Orientation.LEFT_RIGHT,
new int[] {Color.MAGENTA, Color.BLUE, Color.CYAN, Color.GREEN, Color.YELLOW, Color.RED });


GradientDrawable[] gds = new GradientDrawable[] {rainbow1, rainbow2, rainbow3, rainbow4, rainbow5, rainbow6};

AnimationDrawable animation = new AnimationDrawable();

for (GradientDrawable gd : gds){
animation.addFrame(gd, 100);

}

animation.setOneShot(false);

return animation;


}

Kotlin

设置:

    val ad = getProgressBarAnimation()
progressBar.background = ad

动画:

fun getProgressBarAnimation(): AnimationDrawable {

val rainbow1 = GradientDrawable(GradientDrawable.Orientation.LEFT_RIGHT,
intArrayOf(Color.RED, Color.MAGENTA, Color.BLUE, Color.CYAN, Color.GREEN, Color.YELLOW))

val rainbow2 = GradientDrawable(GradientDrawable.Orientation.LEFT_RIGHT,
intArrayOf(Color.YELLOW, Color.RED, Color.MAGENTA, Color.BLUE, Color.CYAN, Color.GREEN))

val rainbow3 = GradientDrawable(GradientDrawable.Orientation.LEFT_RIGHT,
intArrayOf(Color.GREEN, Color.YELLOW, Color.RED, Color.MAGENTA, Color.BLUE, Color.CYAN))

val rainbow4 = GradientDrawable(GradientDrawable.Orientation.LEFT_RIGHT,
intArrayOf(Color.CYAN, Color.GREEN, Color.YELLOW, Color.RED, Color.MAGENTA, Color.BLUE))

val rainbow5 = GradientDrawable(GradientDrawable.Orientation.LEFT_RIGHT,
intArrayOf(Color.BLUE, Color.CYAN, Color.GREEN, Color.YELLOW, Color.RED, Color.MAGENTA))

val rainbow6 = GradientDrawable(GradientDrawable.Orientation.LEFT_RIGHT,
intArrayOf(Color.MAGENTA, Color.BLUE, Color.CYAN, Color.GREEN, Color.YELLOW, Color.RED))


val gds = arrayListOf(rainbow1, rainbow2, rainbow3, rainbow4, rainbow5, rainbow6)

val animation = AnimationDrawable()

for (gd in gds) {
animation.addFrame(gd, 100)
}

animation.isOneShot = false;

return animation;
}

关于android - 多色进度条,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27602814/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com