Я новичок в графическом программировании Android. Я хочу поместить растровое изображение в центр моего холста. Следовательно, я использую:
public void onDraw(Canvas canvas) {
float canvasx = (float) canvas.getWidth();
float canvasy = (float) canvas.getHeight();
Затем я вызываю растровое изображение, которое хочу использовать,
Bitmap myBitmap = BitmapFactory.decodeResource(getResources(),
R.drawable.myBitmap);
Затем я нахожу координаты для моего растрового изображения, используя их,
float bitmapx = (float) myBitmap.getWidth();
float bitmapy = (float) myBitmap.getHeight();
float boardPosX = (canvasx - bitmapx) / 2;
float boardPosY = (canvasy - bitmapy) / 2;
Наконец, я рисую растровое изображение, используя
canvas.drawBitmap(myBitmap, boardPosX, boardPosY, null);
Но растровое изображение не находится в центре холста. Это немного ниже положения, которое, как я считаю, должно быть центром холста.
Правильно ли получить высоту и ширину холста внутри метода onDraw()? Любая идея, что не так? Заранее спасибо.
*Редактировать :
Наконец, я заставляю это работать, изменяя
public void onDraw(Canvas canvas) {
float canvasx = (float) canvas.getWidth();
float canvasy = (float) canvas.getHeight();
to
public void onDraw(Canvas canvas) {
float canvasx = (float) getWidth();
float canvasy = (float) getHeight();
Однако я не знаю, почему это изменение решает мою проблему.