Показать изображение в одном месте на нескольких экранах |Android - PullRequest
0 голосов
/ 04 января 2011

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

Например, если я использую

canvas.drawBitmap(overlay, 365, 85, paint);

Он идеально выровняет изображение для телефонов с шириной 854 пикселей.Но что-нибудь ниже, чем то, что будет сдвинуто вправо.

Я пытался поиграть с падением, но, похоже, не могу понять это.Есть ли где-нибудь, где я могу убедиться, что они правильно выстроены во всех разрешениях?

Ответы [ 2 ]

1 голос
/ 04 января 2011

Я предполагаю, что вы нацеливаетесь на 1.6 или выше.Причина, по которой ваш фон выглядит хорошо на каждом устройстве, заключается в том, что Android автоматически масштабирует ресурсы до целевой плотности экрана, когда вы их декодируете.Вы можете предотвратить это, поместив вместо этого свои ресурсы в «drawable-nodpi» (вам придется создать этот каталог), или передав соответствующие параметры функциям растрового изображения декодирования (см. Документацию.) Если вы сделаете это, выВам нужно будет вручную масштабировать все ваши растровые изображения.Два других ответа имеют правильную идею: возьмите размер экрана и рассчитайте все значения пикселей.Никогда не используйте константы.

1 голос
/ 04 января 2011

Если вы хотите сделать это таким образом, вам, вероятно, нужно рассчитать положение в зависимости от размера экрана.

Вы можете найти их, используя что-то вроде этого:

   DisplayMetrics dm = new DisplayMetrics();
   getWindowManager().getDefaultDisplay().getMetrics(dm);
   wPix = dm.widthPixels;
   hPix = dm.heightPixels;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...