Как обойти проблемы с обрезкой моего приложения на небольших телефонах? - PullRequest
1 голос
/ 23 ноября 2010

У меня есть базовый линейный макет, с изображением, которое отображает фотографии, текстовые просмотры, которые показывают текст и т. Д., И когда я тестирую все мое приложение на моем Android 2, никогда не бывает какой-либо части экрана, которая не показывает,Но когда я тестирую его в эмуляторе QVGA, половина экрана не отображается.Теперь часть моего текста определена до определенного размера.

Я никогда не использую px (only dip) ни в одном из моих xml.Я использую fill_parent, wrap_content там, где это необходимо, и никогда не фиксирую высоту или длину.Может ли это быть с моим текстом, скажем, textSize = 22dip?Я не смог найти документацию о том, почему это не будет работать во всех размерах.

Может ли быть так, что некоторые приложения должны быть запрограммированы под эти размеры экрана?Или я что-то упустил?

Спасибо!

1 Ответ

3 голосов
/ 23 ноября 2010

DIP на самом деле не помогает в дизайне макета жидкости. DIP пытается убедиться, что все выглядит одинаково на разных плотностях экрана. (представьте себе понятие Точки в типографии)

Без вашего кода и / или скриншота того, что происходит, трудно судить о том, что происходит с вашей программой, но размер текста в 22 dip, возможно, является одной из причин, по которой:

  1. 22dip текст в HDPI станет: 22 * ​​240/160 = 33 пикселей
  2. 22 DIP текст в LDPI станет: 22 * ​​120/160 = 16,5 пикселей

Если для QVGA выбрана настройка HDPI, то для буквы она имеет высоту 33 пикселя, которая занимает более 1/10 высоты экрана.

Кстати, ваш широкоэкранный формат 16: 9 (по вертикали) может уместить все на одном экране без прокрутки, в то время как QVGA - это только экран 3: 2, хотя все пропорционально, что-то наверняка будет скрыто.

...