Я прочитал все страницы о поддержке нескольких экранов в Android, в том числе
.
Поддержка нескольких экранов
Предоставление ресурсов
Размеры и плотность экрана
и многие другие. Но я до сих пор не понимаю, какие ресурсы я должен предоставить для правильного размещения рисованных объектов (спрайтов) на холсте.
Я впервые играю в игру, и сейчас я играю в Whack a Mole. Я не совсем понимаю, как использовать папки ldpi, mdpi и hdpi и как правильно размещать спрайты для рисования на поверхности SurfaceView.
У меня есть фоновое изображение, разрешение 480x800, поэтому я добавил его в папку hdpi. Тогда у меня есть 120x150 спрайтов родинок, которые я должен правильно расположить на отверстиях для этого фона.
В настоящее время я использую следующий код для рисования:
canvas.drawBitmap(toDrawBitmap, draw_x, draw_y, null);
draw_x и draw_y - это пиксели, которые я нашел, пытаясь разместить их правильно:
Пока все отлично, они правильно размещены у меня на экране hdpi, 480х800. И андроид правильно масштабирует их на разных разрешениях.
Но когда я пытаюсь использовать экран с другим разрешением, они все нарисованы в неправильных местах, из дыр, некоторые из них даже вне экрана.
Пожалуйста, исправьте меня, если я ошибаюсь, но из того, что я прочитал, эти три разрешения наиболее распространены в телефонах:
240x320 маленький - ldpi
320x480 норм. - т / д
480x800, нормальный - hdpi
Моя цель - заставить игру нормально работать на этих трех видах экрана. Итак, мой вопрос:
Можно ли рассчитать значения draw_x и draw_y, которые будут работать на всех устройствах? Если нет, то как мне решить эту проблему?