Как определить dimens.xml для каждого размера экрана в Android?

Когда мы говорили о поддержке различных размеров экрана в Android . Все сосредоточены на создании различных макетов для всех возможных экранов, т.е.

  • ldpi
  • MDPI
  • ИПЧР
  • xhdpi
  • xxhdpi
  • xxxhdpi

То, что я сделал, это дизайн макета в соответствии с xhdpi экран xhdpi и определение его dimensions в dimens.xml . Теперь я хочу предоставить поддержку всем возможным размерам экрана android . Как я могу это сделать?

Насколько я знаю, я могу использовать этот инструмент, чтобы определить правильный dimens.xml для другого размера экрана и добавить в мой проект. Это правильный способ сделать это в моей ситуации?

Другой вопрос: мне только нужно создать dimens.xml для вышеупомянутых размерных экранов? Если да, то что такое w820dp ?

Спасибо за вашу помощь. Я хочу только поддерживать phones не таблетки и другие устройства.

Вам нужно создать папку «Различные значения» для разных экранов . подобно

 values-sw720dp 10.1” tablet 1280x800 mdpi values-sw600dp 7.0” tablet 1024x600 mdpi values-sw480dp 5.4” 480x854 mdpi values-sw480dp 5.1” 480x800 mdpi values-xxhdpi 5.5" 1080x1920 xxhdpi values-xxhdpi 5.5" 1440x2560 xxhdpi values-xhdpi 4.7” 1280x720 xhdpi values-xhdpi 4.65” 720x1280 xhdpi values-hdpi 4.0” 480x800 hdpi values-hdpi 3.7” 480x854 hdpi values-mdpi 3.2” 320x480 mdpi values-ldpi 3.4” 240x432 ldpi values-ldpi 3.3” 240x400 ldpi values-ldpi 2.7” 240x320 ldpi 

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

Для получения дополнительной информации вы можете посетить здесь

Различные значения папок в android

http://android-developers.blogspot.in/2011/07/new-tools-for-managing-screen-sizes.html

Отредактировано: @humblerookie

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

Мы хотим увидеть изменения требуемого размера вида на разных экранах.

Нам нужно создать разные папки значений для разных экранов и поместить файл dimens.xml на основе плотности экрана.

Я взял один TextView и наблюдал изменения, когда я изменил dimens.xml в папках с разными значениями.

Пожалуйста, следуйте процедуре

Normal – xhdpi \ dimens.xml

Приведенные ниже устройства могут изменять размеры экранов при изменении нормали – xhdpi \ dimens.xml

Nexus 5X (5.2 "* 1080 * 1920: 420dpi)

Nexus 6P (5.7 "* 1440 * 2560: 560dpi)

Nexus 6 (6.0 "* 1440 * 2560: 560dpi)

Nexus 5 (5.0 ", 1080 1920: xxhdpi)

Nexus 4 (4.7 ", 768 * 1280: xhdpi)

Galaxy nexus (4.7 ", 720 * 1280: xhdpi)

4.65 "720p (720 * 1280: xhdpi)

4.7 "WXGA (1280 * 720: Xhdpi)

Xlarge – xhdpi \ dimens.xml

Приведенные ниже устройства могут изменять размеры экранов при изменении Xlarge – xhdpi \ dimens.xml

Nexus 9 (8,9 ", 2048 * 1556: xhdpi)

Nexus 10 (10,1 ", 2560 * 1600: xhdpi)

Большой – xhdpi \ dimens.xml

Приведенные ниже устройства могут изменять размеры экранов при изменении большого размера – xhdpi \ dimens.xml

Nexus 7 (7.0 ", 1200 * 1920: xhdpi)

Nexus 7 (2012) (7,0 ", 800 * 1280: tvdpi)

Нижеследующие экраны видны в разделе «Поиск общих телефонов и планшетов»

Большой – mdpi \ dimens.xml

Приведенные ниже устройства могут изменять размеры экранов при изменении большого размера – mdpi \ dimens.xml

5.1 "WVGA (480 * 800: mdpi)

5.4 "FWVGA (480 * 854: mdpi)

7,0 "WSVGA (планшет) (1024 * 600: mdpi)

Normal – hdpi \ dimens.xml

Приведенные ниже устройства могут изменять размеры экранов при изменении нормального – hdpi \ dimens.xml

Nexus s (4.0 ", 480 * 800: hdpi)

Nexus one (3,7 ", 480 * 800: hdpi)

Small – ldpi \ dimens.xml

Приведенные ниже устройства могут изменять размеры экранов при изменении маленького ldpi \ dimens.xml

2.7 "QVGA Slider (240 * 320: ldpi)

2.7 "QVGA (240 * 320: ldpi)

Xlarge – mdpi \ dimens.xml

Приведенные ниже устройства могут изменять размеры экранов при изменении xlarge – mdpi \ dimens.xml

10.1 "WXGA (tABLET) (1280 * 800: MDPI)

Normal – ldpi \ dimens.xml

Приведенные ниже устройства могут изменять размеры экранов при изменении нормали – ldpi \ dimens.xml

3,3 "WQVGA (240 * 400: LDPI)

3.4 "WQVGA (240 * 432: LDPI)

Normal – hdpi \ dimens.xml

Приведенные ниже устройства могут изменять размеры экранов при изменении нормального – hdpi \ dimens.xml

4.0 "WVGA (480 * 800: hdpi)

3.7 "WVGA (480 * 800: hdpi)

3.7 "Ползунок FWVGA (480 * 854: hdpi)

Normal – mdpi \ dimens.xml

Приведенные ниже устройства могут изменять размеры экранов при изменении нормали – mdpi \ dimens.xml

3.2 "HVGA Slider (ADP1) (320 * 480: MDPI)

3.2 "QVGA (ADP2) (320 * 480: MDPI)

Вам нужно создать папку с разными values для разных экранов и поместить файл dimens.xml соответствии с плотностями.

 1) values 2) values-hdpi (320x480 ,480x800) 3) values-large-hdpi (600x1024) 4) values-xlarge (720x1280 ,768x1280 ,800x1280 ,Nexus7 ,Nexus10) 5) values-sw480dp (5.1' WVGA screen) 6) values-xhdpi (Nexus4 , Galaxy Nexus) 

Я загрузил простую java-программу, которая берет ваше местоположение проекта и файл измерения, который вы хотите в качестве входных данных. Исходя из этого, он выведет соответствующий размерный файл в консоли. Вот ссылка на него:

https://github.com/akeshwar/Dimens-for-different-screens-in-Android/blob/master/Main.java

Вот полный код для справки:

 public class Main { /** * You can change your factors here. The current factors are in accordance with the official documentation. */ private static final double LDPI_FACTOR = 0.375; private static final double MDPI_FACTOR = 0.5; private static final double HDPI_FACTOR = 0.75; private static final double XHDPI_FACTOR = 1.0; private static final double XXHDPI_FACTOR = 1.5; private static final double XXXHDPI_FACTOR = 2.0; private static double factor; public static void main(String[] args) throws IOException { Scanner in = new Scanner(System.in); System.out.println("Enter the location of the project/module"); String projectPath = in.nextLine(); System.out.println("Which of the following dimension file do you want?\n1. ldpi \n2. mdpi \n3. hdpi \n4. xhdpi \n5. xxhdpi \n6. xxxhdpi"); int dimenType = in.nextInt(); switch (dimenType) { case 1: factor = LDPI_FACTOR; break; case 2: factor = MDPI_FACTOR; break; case 3: factor = HDPI_FACTOR; break; case 4: factor = XHDPI_FACTOR; break; case 5: factor = XXHDPI_FACTOR; break; case 6: factor = XXXHDPI_FACTOR; break; default: factor = 1.0; } //full path = "/home/akeshwar/android-sat-bothIncluded-notintegrated/code/tpr-5-5-9/princetonReview/src/main/res/values/dimens.xml" //location of the project or module = "/home/akeshwar/android-sat-bothIncluded-notintegrated/code/tpr-5-5-9/princetonReview/" /** * In case there is some I/O exception with the file, you can directly copy-paste the full path to the file here: */ String fullPath = projectPath + "/src/main/res/values/dimens.xml"; FileInputStream fstream = new FileInputStream(fullPath); BufferedReader br = new BufferedReader(new InputStreamReader(fstream)); String strLine; while ((strLine = br.readLine()) != null) { modifyLine(strLine); } br.close(); } private static void modifyLine(String line) { /** * Well, this is how I'm detecting if the line has some dimension value or not. */ if(line.contains("p</")) { int endIndex = line.indexOf("p</"); //since indexOf returns the first instance of the occurring string. And, the actual dimension would follow after the first ">" in the screen int begIndex = line.indexOf(">"); String prefix = line.substring(0, begIndex+1); String root = line.substring(begIndex+1, endIndex-1); String suffix = line.substring(endIndex-1,line.length()); /** * Now, we have the root. We can use it to create different dimensions. Root is simply the dimension number. */ double dimens = Double.parseDouble(root); dimens = dimens*factor*1000; dimens = (double)((int)dimens); dimens = dimens/1000; root = dimens + ""; System.out.println(prefix + " " + root + " " + suffix ); } System.out.println(line); } } 

Если вы хотите просмотреть больше: вот ссылка на список устройств (планшет, мобильный, часы), включая watch , chromebook , windows и mac . Здесь вы можете найти плотность, размеры и т. Д. Просто основанная здесь, это хороший ресурс, если вы тоже используете эмулятор.

Если вы нажмете на определенный элемент, он отобразит более подробную информацию в правой части. образец

Так как это Android , я опубликую связанный с ним. sample1

sample2

~ Лучше, если вы сохраните копию сети. Чтобы просмотреть его в автономном режиме.

Вы можете поместить dimens.xml в

1) значения

2) значения-hdpi

3) значения-xhdpi

4) значения -xxhdpi

И дайте разные размеры в dimens.xml в соответствующих папках в соответствии с плотностями.