所以,基本上,如果位图存在,首先绘制它,在整个视图/画布上拉伸。然后在上面画一些文本和一个矩形,它应该很好用。对?
我假设这会绘制一个“背景”(Being currentPicture),然后在它下面画一些东西,% 和矩形。
想知道为什么它的行为不是这样?它以前可以工作,但是发生了一些变化,现在没有了。
此外,该:
canvas.drawRect(0, 0, width, 200, p);
不画。
类似的故事:
canvas.drawRect(0, 100, width, 200, p);
两者都在 if 语句中。我认为不应该绘制第一个,但应该绘制第二个。位图绘制正确。
有任何问题,请追问!
代码:
@Override
public void onDraw(Canvas canvas) {
int myColor = 0;
p.setColor(Color.TRANSPARENT);
canvas.drawRect(0, 0, width, height, p);
if (currentPicture != null) {
p.setColor(Color.RED);
canvas.drawRect(0, 0, width, 200, p);
canvas.drawBitmap(currentPicture, new Rect(0, 0, width, height), new Rect(0, 0, width, height), p);
canvas.translate(translateX, translateY);
canvas.scale(scaleX, scaleY);
pictureCanvas = canvas;
p.setColor(Color.GREEN);
canvas.drawRect(0, 100, width, 200, p);
}
if (ci >= 66) {
myColor = (Color.RED);
} else if (ci >= 33) {
myColor = (Color.YELLOW);
} else {
myColor = (Color.GREEN);
}
p.setColor(myColor);
// Progress bar stuff.
canvas.drawRect(0, height - 100, (progress * width / 20), height, p);
// backdrop for textview.
p.setColor(Color.BLACK);
canvas.drawText(ci + "%", -1, height - 19, p);
canvas.drawText(ci + "%", +1, height - 21, p);
// Draw CI.
p.setColor(myColor);
p.setTextSize(100);
canvas.drawText(ci + "%", 0, height - 20, p);
}