繁体   English   中英

Android,Java和2D绘图

[英]Android, Java & 2d Drawing

一直试图在onDraw(Canvas 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和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刚刚完成执行后需要再次运行)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM