android中textView的背景色和seekBar值

android中textView的背景色和seekBar值,android,colors,textview,Android,Colors,Textview,我正在做一个项目,在这个项目中,我使用一个seekBar来改变一个图形的颜色。这个图形由一个文本视图来表示,该视图有一个用xml设置的特定背景颜色。当我改变seekBar的值时,颜色应该会改变 假设textView有颜色#xxxxxx。我想得到这个颜色的值,并用seekBar的值适当地修改它 例如,如果: 情况1:seekBar值增加0->max=>#yyyyyy(seekBar的每个值都有不同的颜色) 情况2:seekBar值减小最大->0=>#xxxxxx(同上) 我知道如何获取文本视图的颜

我正在做一个项目,在这个项目中,我使用一个seekBar来改变一个图形的颜色。这个图形由一个文本视图来表示,该视图有一个用xml设置的特定背景颜色。当我改变seekBar的值时,颜色应该会改变

假设textView有颜色#xxxxxx。我想得到这个颜色的值,并用seekBar的值适当地修改它

例如,如果:

情况1:seekBar值增加0->max=>#yyyyyy(seekBar的每个值都有不同的颜色)

情况2:seekBar值减小最大->0=>#xxxxxx(同上)

我知道如何获取文本视图的颜色:

ColorDrawable cd = (ColorDrawable) textView.getBackground();
int colorCode = cd.getColor();`
以及如何使seekBar值的“增加”和“减少”值的逻辑


我就是不知道如何使用“进度”和色码从x到y,从y到x。你必须写一个方法

int toColor(int progress)
它将seekbar的onProgressChanged()方法中的进度值转换为int-color,然后将其设置为textview的背景:

textView.setBackgroundColor(convertedColor);

每种颜色都由红、绿、蓝组成 所以试试这个:

public int getColor(int progress) {
    int startColor = Color.parseColor("#xxxxxx");
    int endColor = Color.parseColor("#yyyyyy");

    int start_red = Color.red(startColor);
    int start_green = Color.green(startColor);
    int start_blue = Color.blue(startColor);
    int end_red = Color.red(endColor);
    int end_green = Color.green(endColor);
    int end_blue = Color.blue(endColor);

    int progress_red = start_red + (end_red - start_red) * progress / 100;
    int progress_green = start_green + (end_green - start_green) * progress / 100;
    int progress_blue = start_blue + (end_blue - start_blue) * progress / 100;

    int progress_color = Color.rgb(progress_red, progress_green, progress_blue);
    return progress_color;
}

seekBar的最大值应该是255?我仍然不认为旧的背景色和新的背景色之间有任何关系。像newgcolor=progress+oldbgcolor这样的东西最好使用seekbar的getMax()方法,因为它可以在创建seekbarThis时被重写。这看起来很有希望:D但有一件事,我不知道yyyyy值的确切值,但我不认为我会保持这个条件不变,我会指定一个修饰颜色,就是这样。谢谢你的帮助:)哦,顺便说一句,seekBar的最大值应该是多少?