2015-01-15 2 views
0

Я разрабатываю приложение, которое работает на нескольких телефонах, когда я тестирую его на устройстве с 5-дюймовым экраном, но уровень DPI составляет 186 макетов приложений, которые выглядят не очень хорошо. какой тип папки макета мы должны использовать, если размер экрана большой, но DPI НИЗКИЙКак создать папку макета для нескольких экранов в android

я уже прошли через here

Пожалуйста, предложите что-то

+0

http://stackoverflow.com/questions/22728159/creating-multi-screen-support-app-android –

+0

проверить эти ссылки..http: //stackoverflow.com/questions/16706076/font-size-and -изображения для разных устройств/16910589 # 16910589 http://stackoverflow.com/questions/12242111/application-skeleton-to-support-multiple-screen http://stackoverflow.com/questions/7587854 http://stackoverflow.com/questions/7587854/есть-A-список-оф-экранные разрешений для всех,-андроида, ориентированная на телефонах и-таблетка –

ответ

0

Вы должны предоставить Alternative Resources для поддержки определенных конфигураций устройств. официальный документ говорит

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

Просто резюмировать ссылку

  1. Создать новый каталог в разрешении/с именем в виде <resources_name>-<config_qualifier>. <resources_name> это имя каталога соответствующих ресурсов по умолчанию

    <qualifier> это имя, которое определяет индивидуальную конфигурацию, для которой эти ресурсы будут использоваться

  2. Сохранить соответствующие альтернативные ресурсы в этом новом каталоге. Файлы ресурсов должны быть названы в точности такими же, как файлы ресурсов по умолчанию.

Например, вот некоторые по умолчанию и альтернативные ресурсы:

res/ 
    drawable/ 
     icon.png 
     background.png  
    drawable-hdpi/ 
     icon.png 
     background.png 

Таким образом, идентификатор ресурса, который используется для ссылки на icon.png или background.png изображение всегда одинаково, но Android выбирает версию каждого ресурса, которая наилучшим образом соответствует текущему устройству, путем сравнения информации о конфигурации устройства с квалификаторами в имени каталога ресурсов.

Однако следует иметь в правилах имени ума ниже:

имени Классификатора правило

  1. Вы можете указать несколько классификаторов для одного набора ресурсов, разделенного тиром. Например, drawable-en-rUS-land применяется к американо-английским устройствам в альбомной ориентации.
  2. Отборочные работы должны быть в порядке, указанном в table 2. Например:

    Wrong: рисуем-ИПЧР-порт/

    Правильно: рисуем-порт-ИПЧР/

  3. Альтернативные каталоги ресурсов не могут быть вложенными.Например, у вас не может быть res/drawable/drawable-en/

  4. Значения не чувствительны к регистру. Компилятор ресурсов преобразует имена каталогов в нижний регистр перед обработкой, чтобы избежать проблем с файловыми системами, не зависящими от регистра. Любая капитализация в именах предназначена только для чтения.

  5. Поддерживается только одно значение для каждого типа классификатора. Например, если вы хотите использовать одни и те же доступные файлы для Испании и Франции, у вас не может быть каталога с именем drawable-rES-rFR /. Вместо этого вам нужны два каталога ресурсов, такие как drawable-rES/и drawable-rFR /, которые содержат соответствующие файлы. Однако вам не требуется дублировать те же файлы в обоих местах. Вместо этого вы можете создать псевдоним для ресурса.

Вот отличный официальный документ для How Android Finds the Best-matching Resource.

enter image description here

Здесь также Good answer и another good one предоставления альтернативных ресурсов

0

Проблема происходит потому, что много андроид методов API имеет дело с плавающей точкой приложенного атрибута, так, чтобы решить эту проблему , оставьте созданные макеты, поскольку все это в обычных папках, а затем, применяя какой-либо атрибут к представлению, обязательно примените этот атрибут через время выполнения и убедитесь, что этот атрибут преобразуется в его плавающие точки, используя следующие метод:

float new_value = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, old_value, getResources().getDisplayMetrics()); 

это даст вам фиксированное поведение макетов среди нескольких ДОИ.

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

  • Нет связанных вопросов^_^