gpt4 book ai didi

java - Android、Java 和 2d 绘图

转载 作者:太空狗 更新时间:2023-10-29 13:41:50 24 4
gpt4 key购买 nike

一直在尝试在 onDraw(Canvas canvas) 方法之外的 android View 上绘制。

@Overrides
public void onDraw(Canvas canvas) {
c = canvas;
canvas.drawLine(0, 50, 100, 50, paint);
invalidate();
}

我想保持上面的显示,同时在屏幕上绘制另一个字符 - 取决于 xPosition 和 yPosition。

public void drawPlayer(int x, int y){
c.drawCircle(x, y, 5, paint);
}

我对 java 和 android 中的 2d 图形还很陌生。

提前致谢

最佳答案

您需要遵循这样的模式:

private boolean isPlayerVisible = false;
private int playerPosX;
private int playerPosY;

@Overrides
public void onDraw(Canvas canvas) {
c = canvas;
canvas.drawLine(0, 50, 100, 50, paint);
if (isPlayerVisible) {
Paint paint= new Paint();
paint.setColor(0xFFFFFFFF);
paint.setStrokeWidth(1);
c.drawCircle(playerPosX, playerPosY, 5, paint);
}
}

private void setPlayersPos(int x, int y) {
playerPosX = x;
playerPosY = y;
isPlayerVisible= true;
invalidate();
}

所有绘图都发生在 OnDraw 方法中。 OnDraw 将在需要时调用。您可以通过在另一个方法中调用 invalidate 来强制运行 OnDraw。在 OnDraw 方法中调用 invalidate 是没有意义的(也许它也会导致不稳定的行为,因为 OnDraw 刚执行完就需要再次运行)。

关于java - Android、Java 和 2d 绘图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4793467/

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