我正在努力改进我的应用程序的用户界面。 在我使用的设计中,我有一个 TextView,它将在特定时间充当进度条。 ruslt 应该是这样的:
问题是,随着进度的变化,部分文本会改变颜色
我在 android 中查看了 spannablestring,如果我能找到进度涵盖的字母,它会起作用(但我认为这不会容易/准确)
我现在打算做的是使用以下内容:
- 框架布局:
- 具有绿色文本和白色背景的背景 textView。
- 在前进时改变宽度的前端线性布局。
- 具有与框架布局宽度匹配的绿色背景和白色文本的 TextView。
有没有更好的方法?
最佳答案
更好的方法是要求您覆盖 TextView 类。您可以使用裁剪来拆分 TextView 并绘制不同颜色的两个部分。
TextView tv = new TextView(this){
@Override
public void draw(Canvas canvas) {
int color1 = Color.WHITE;
int color2 = Color.GREEN;
canvas.save();
setTextColor(color1);
setBackgroundColor(color2);
canvas.clipRect(new Rect(0, 0, (int)(getWidth() * percent), getHeight()));
super.draw(canvas);
canvas.restore();
canvas.save();
setTextColor(color2);
setBackgroundColor(color1);
canvas.clipRect(new Rect((int)(getWidth() * percent), 0, getWidth(), getHeight()));
super.draw(canvas);
canvas.restore();
}
};
我希望你明白这一点
关于android - TextView 作为带有文本颜色操作的进度条?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14977626/