Android: размер холста SurfaceView отличается от пикселей целевого устройства - PullRequest
0 голосов
/ 24 сентября 2011

Я новичок в программировании на Android. У меня есть небольшая игра, где я рисую все в закадровом холсте. Когда я хочу представить это, я использую calss, полученный из SurfaceView. Работает нормально. Проблема в том, что холст за пределами экрана составляет 480x800 (разрешение целевого устройства) пикселей, но холст SurfaceView, который я получаю через getHolder (). LockCanvas (), составляет всего 240x480. В результате он выглядит действительно некрасиво - сначала его уменьшают с холста за пределами экрана до холста SurfaceView (теряя мелкие детали), а затем увеличивают до размера экрана устройства (растягивают обратно до исходного размера).

Поскольку эмулятор также работает с разрешением 480x800, я понятия не имею, почему SurfaceView создан так мало. Почему он не создан в размере эмулируемого устройства? Я наконец обошел это с установкой фиксированного размера держателя (getHolder (). SetFixedSize (480, 800)), но это правильный путь?

Есть ли другой способ заставить устройство создавать SurfaceView размером с его пиксели?

1 Ответ

1 голос
/ 31 декабря 2011

Попробуйте добавить это в свой манифест за пределами тега приложения.

<supports-screens android:anyDensity="true" />
...