Java 我是否应该依靠Android来放弃屏幕外的绘图?

Java 我是否应该依靠Android来放弃屏幕外的绘图?,java,android,math,optimization,Java,Android,Math,Optimization,我有一个函数,它获取一个无缝位图,并使用世界坐标在屏幕上以任何方向滚动它。共有4个绘图(播放区域小于完整位图大小。因此,最多只能看到4个位图副本,只是绘制了不同的部分以保持无缝效果)。我想知道的是,我是否应该对rect边界进行修改,以便它只在屏幕上显示应该显示的部分?还是让安卓来处理? 如果我自己做的话,我该怎么处理?就数学而言,世界坐标和翻译真的让我困惑/ 这是密码 public void draw(Canvas canvas){ oCoords.x=(int) fX; oCoords.y=

我有一个函数,它获取一个无缝位图,并使用世界坐标在屏幕上以任何方向滚动它。共有4个绘图(播放区域小于完整位图大小。因此,最多只能看到4个位图副本,只是绘制了不同的部分以保持无缝效果)。我想知道的是,我是否应该对rect边界进行修改,以便它只在屏幕上显示应该显示的部分?还是让安卓来处理? 如果我自己做的话,我该怎么处理?就数学而言,世界坐标和翻译真的让我困惑/

这是密码

public void draw(Canvas canvas){

oCoords.x=(int) fX;
oCoords.y=(int) fY;

oTopLeft = gridContainingPoint(oCoords);
oTopRight.x = gridContainingPoint(oCoords).x + iWidth;
oTopRight.y = gridContainingPoint(oCoords).y;
oBottomLeft.x = gridContainingPoint(oCoords).x;
oBottomLeft.y = gridContainingPoint(oCoords).y + iHeight;
oBottomRight.x = gridContainingPoint(oCoords).x + iWidth;
oBottomRight.y = gridContainingPoint(oCoords).y + iHeight;

canvas.save();
canvas.translate(-fX, -fY);
oCloud.setBounds(oTopLeft.x, oTopLeft.y, oTopLeft.x + this.iImageWidth, oTopLeft.y + this.iImageHeight);
oCloud.draw(canvas);
oCloud.setBounds(oTopLeft.x + this.iImageWidth, oTopLeft.y, oTopLeft.x + (this.iImageWidth * 2), oTopLeft.y + this.iImageHeight);
oCloud.draw(canvas);
oCloud.setBounds(oTopLeft.x, oTopLeft.y + this.iImageHeight, oTopLeft.x + this.iImageWidth, oTopLeft.y + (this.iImageHeight * 2));
oCloud.draw(canvas);
oCloud.setBounds(oTopLeft.x + this.iImageWidth, oTopLeft.y + this.iImageHeight, oTopLeft.x + (this.iImageWidth * 2),oTopLeft.y + (this.iImageHeight * 2));
oCloud.draw(canvas);
canvas.restore();
}

我不确定我是否理解您发布的代码块的详细信息,但如果您问android clip是否自动绘制到屏幕边界,答案是肯定的。因此,在绘制位图时不必设置边界,除非您希望绘制的位图的一部分小于屏幕