Android,Java& 2d绘图

时间:2011-01-25 12:27:42

标签: java android graphics 2d

试图在onDraw(Canvas画布)方法之外绘制一个android视图。

@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&中的2D图形很新。机器人。

提前致谢

1 个答案:

答案 0 :(得分:2)

您需要遵循以下模式:

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在完成执行后需要再次运行)。

相关问题