安卓,Java,;二维绘图
一直在尝试在onDraw(Canvas Canvas)方法之外绘制android视图 我希望在屏幕上绘制另一个字符时保持上面的显示,具体取决于xPosition和yPosition安卓,Java,;二维绘图,java,android,graphics,2d,Java,Android,Graphics,2d,一直在尝试在onDraw(Canvas Canvas)方法之外绘制android视图 我希望在屏幕上绘制另一个字符时保持上面的显示,具体取决于xPosition和yPosition public void drawPlayer(int x, int y){ c.drawCircle(x, y, 5, paint); } 我对java和android中的2d图形非常陌生 提前感谢您需要遵循以下模式: private boolean isPlayerVisible = fa
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需要在刚执行完之后再次运行)
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();
}