2013-03-06 3 views
3

Я создал простое приложение для Android. Он имеет только один вид деятельности и один вид.Масштабный вид на планшете, похожий на телефон

Приложение предназначено для телефонов. Я использовал блок «независимый от устройства пиксель» (dp) для всех моих измерений элементов пользовательского интерфейса и RelativeLayout для большинства моих макетов. Приложение выглядит хорошо на маленьком экране.

На большом экране (например, на планшете) все элементы крошечные, разбросанные друг от друга, и в нижней части находится большое пустое пространство. Это правда, что физический размер элементов пользовательского интерфейса примерно одинаковый между планшетом и телефоном, что обещает блок dp, но это не совсем то, что я хочу для этого приложения. Я хотел бы, чтобы весь интерфейс просто увеличивался и заполнял экран как можно больше, например, когда вы запускаете приложение iPhone на iPad и нажимаете кнопку «2x».

Каков наилучший способ для этого? Должен ли я писать отдельные виды для каждого размера экрана? Должен ли я использовать пиксели (px) вместо dp?

Спасибо.

ответ

1

Использование px в качестве измерения на самом деле будет хуже - поскольку новые планшеты имеют высокие экраны DPI, то есть 100px будет наглядно меньше на планшете, чем на среднем телефоне.

Ваш лучший вариант - использовать переопределения макета (layout-sw600dp, layout-sw700dp). Хотя простое расширение макета телефона строго запрещено .. Если вы хотите воспользоваться ярлыком, все, что вам нужно сделать, это скопировать расположение вашего телефона в папки sw * и настроить все измерения dp.

Вам также необходимо, чтобы заставить планшет в портретном режиме с помощью:

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 
+0

Проблема я нахожу с тонкой настройки измерения дифференциального давления. Не существует ли способа, которым Android может автоматически определять, насколько большой экран и несколько значений dp этим фактором? Изображения ухудшаются, когда они также охватывают – Snake

Смежные вопросы