Студия Android выбирает неправильные макеты

Я новичок в Android. Я создаю свое первое приложение.

Я пытался заставить его поддерживать несколько экранов. Я просмотрел раздел разработчиков в Android, но я не разбираюсь в этих вещах.

  1. Какое разрешение я должен использовать для разных папок с возможностью рисования? (например, экран hdpi может иметь разрешение экрана 500*600 или 1280*1920.)

  2. Я использую папки макетов, как указано на странице разработчиков, например, маленькие, нормальные и остальные, но Android продолжает выбирать обычные макеты для экранов, таких как nexus 6p (для которых, как я предполагаю, подойдет большой размер).

Можно ли как-то улучшить внешний вид??


person Swifty    schedule 22.04.2016    source источник
comment
вы можете предоставить 1 изображение с более высоким разрешением, оно просто поместится в контейнер и масштабируется. просто напоминание о том, что ориентация изображения должна быть правильно масштабирована. если это ландшафт, то предоставьте изображения ландшафта (ширина › высота) и наоборот   -  person Rashid    schedule 22.04.2016


Ответы (2)


введите описание изображения здесь
Вы должны написать макет один раз, но должны определить размеры dimens.xml для разных разрешений в app>res>values.

введите здесь описание изображения

person Saurabh Vardani    schedule 22.04.2016
comment
Здесь файл размеров для папки с нормальными значениями содержит разрешение для экрана менее 5 дюймов, valuessw600dp содержит разрешение для экрана от 5 до 7 дюймов, а значения sw720dp содержат разрешение для экрана более 7 дюймов. - person Saurabh Vardani; 22.04.2016
comment
Спасибо за ваш ответ. Мне просто любопытно, приложение работает на всех типах экранов, например, с разным соотношением сторон?? Потому что при использовании этих папок для разных макетов я обнаружил, что мой пользовательский интерфейс неуместен даже при небольшом изменении размера. - person Swifty; 22.04.2016
comment
Я... вы должны сосредоточиться на одном размере экрана. пусть предположим 7 дюймов, так что вам нужно изменить только файл размера sw600dp, нет необходимости изменять другие размеры ... все остается прежним. - person Saurabh Vardani; 22.04.2016
comment
Мое приложение также работает для всех типов экрана... вы должны поддерживать эти три измерения. - person Saurabh Vardani; 22.04.2016
comment
Хорошая логика. @ Сатья, ты должен принять этот ответ. - person IntelliJ Amiya; 22.04.2016
comment
Эй, saurabh, извините, что это заняло так много времени, но я работал над этим.. Я создал разные папки макета с разными значениями SW. Я использую папки sw400, sw600, sw720, sw780 в своем приложении. Все работает хорошо, но некоторые экраны в папках по умолчанию выглядят не очень хорошо. Например, я использовал Galaxy S3 (306 пикселей на дюйм, SW-376) и HTC one (469 пикселей на дюйм, SW-368), используя раскладку по умолчанию, но они выглядят не очень хорошо. При этом MOTO x (312 ppi, SW-369), Nexus 5 (445 ppi, SW-388) работают хорошо. В чем может быть проблема в этом?? - person Swifty; 28.04.2016

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

//At base activity/fragment
protected boolean isLargeLayout() {
  return getResources().getBoolean(R.bool.large_layout);
}
//Then at your real activity/fragment just call
if(isLargeLayout()) {
  //Set your layout knowing it's large
}else{
  //Normal layout
}

Или используйте прямо что-то вроде

if(getResources().getBoolean(R.bool.large_layout)) {
}

Или используйте dimens.xml с разными dps (я не предпочитаю этот метод. Мне нравится андроид выбирать, какой большой экран или нет)

person Leolian    schedule 22.04.2016