[英]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.