gpt4 book ai didi

java - 为什么我的画从 Canvas 上消失了?

转载 作者:行者123 更新时间:2023-12-02 03:18:17 28 4
gpt4 key购买 nike

我每 10 秒在 Canvas 上进行一些绘图。不幸的是它在重新绘制之前就消失了,所以我们有 10 秒的空白屏幕。我厌倦了在绘画之前保存 Canvas 并恢复它,但没有帮助。这个错误是在我将一行 canvas.drawPath(linePath, linePaint); 从循环外部移入循环后出现的。

代码:

private void drawLine(Canvas canvas) {
yStep = (yHeight) / fullChargeLevel;
xStep = (xWidth) / timeStampBarsQuantity;

boolean check = false;
float time;
float chrg;

while (batteryUsageHistory != null && batteryUsageHistory.moveToNext()) {
int charge = batteryUsageHistory.getInt(1);
int time_stamp = batteryUsageHistory.getInt(2);

if (charge < 1) {

if(check){
canvas.drawPath(linePath, linePaint); //This line I shifted into here
linePath.reset();
}

check = false;

continue;
}

time = xPos + time_stamp * xStep;
chrg = yPos - (charge * yStep);

if (!check) {
linePath.moveTo(time, chrg);
check = true;

continue;
}
linePath.lineTo(time, chrg);
}
//canvas.drawPath(linePath, linePaint); //This line I shifted from here
}

最佳答案

您应该通过扩展一些 View 类来在 onDraw 中实现绘图逻辑:

protected void onDraw(Canvas canvas) {
// here goes your custom drawing logic
}

如:https://developer.android.com/training/custom-views/custom-drawing.html中所述

这是因为 android 会在需要时重绘组件。总是这样的,你需要实现绘画方法,GUI框架会在需要的时候调用这个方法,而不是相反,GUI框架显示你的绘画,它只是在需要的时候调用你的绘画方法。

关于java - 为什么我的画从 Canvas 上消失了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39998495/

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