Стоит ли полагаться на Android, чтобы отказаться от зарисовок? - PullRequest
5 голосов
/ 19 сентября 2011

У меня есть функция, которая берет бесшовное растровое изображение и прокручивает его на экране в любом направлении, используя мировые координаты.Есть 4 рисунка (игровая зона меньше, чем полный размер растрового изображения. Таким образом, самое большее, вы увидите 4 копии растрового изображения, только различные разделы, нарисованные для сохранения эффекта бесшовности).То, что я хочу знать, это то, должен ли я применять модификации к прямоугольным границам, так чтобы он только разбивал части, которые он должен на экране?Или я должен позволить Android справиться с этим?И если я сделаю это сам, как мне справиться с этим?Мир координат и перевода действительно смущает меня, насколько математика идет.: /

Вот код.

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();
}

1 Ответ

2 голосов
/ 20 сентября 2011

Я не уверен, что понимаю детали фрагмента кода, который вы опубликовали, но если вы спрашиваете, автоматически ли клип для Android отрисовывается на экране, ответ будет положительным. Поэтому вам не нужно устанавливать границы при рисовании растрового изображения, если только вы не хотите нарисовать его часть меньше экрана.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...