android - это - В чем разница между «px», «dip», «dp» и «sp»?




sp font (20)

sp: масштабный независимый пиксель

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

px: пиксель или элемент изображения - это единственная точка на экране

В чем разница между единицами измерения андроида?

  • ПВ
  • падение
  • дп
  • зр

Определения

px или точка - это пиксель на физическом экране.

dpi - это пиксели на дюйм на физическом экране и представляют плотность дисплея.

Android дает имена псевдонимов нескольким плотностям

  • ldpi (низкий) ~ 120dpi
  • mdpi (средний) ~ 160dpi
  • hdpi (высокий) ~ 240dpi
    • большинство устройств в 2015 году здесь
  • xhdpi (extra-high) ~ 320dpi
    • Apple iPhone 4/5/6, Nexus 4
  • xxhdpi (extra-extra-high) ~ 480dpi
    • Нексус 5
  • xxxhdpi (extra-extra-extra-high) ~ 640dpi

dip или dp являются пикселями с плотностью , то есть они соответствуют более или менее пикселам в зависимости от физической плотности.

  • 1dp = 1px на mdpi

sp или sip - независимый от масштаба пиксель . Они масштабируются, когда параметр « Большой текст» включен в « Настройки» > « Доступность»

  • 1sp = 1dp
  • 1sp = 1,2dp с возможностью доступа Большой текст

Что использовать?

Используйте sp для размера текста.

Используйте dp для всего остального.


dpi -

  • Точки на дюйм
  • Измерение плотности пикселей экрана.

px - пиксель

  • Для отображения пикселей экрана

pt - точки

  • Около 1/72 дюйма, что касается физического размера экрана.

дюйм - относительно физического размера экрана (1 дюйм = 2,54 см).

мм-миллиметр - относительно физического размера экрана.

sp - масштаб-независимый пиксель.

  • На основе предпочтений шрифта пользователя.
  • Шрифт должен быть в «sp».

dip -

  • dip == dp
  • Независимый от плотности пиксель.
  • Он варьируется в зависимости от плотности экрана.
  • В 160 dpi экран, 1 dp = 1 пиксель.
  • Используйте dp, кроме размера шрифта текста.

В стандарте используются dp и sp. sp для размера шрифта и dp для всего остального.

Формула для преобразования единиц:

px = dp * (dpi / 160);

Density Bucket -> Screen Display => Physical Size        => Pixel Size                   

ldpi         -> 120 dpi          => 0.5 x 0.5 in         => 0.5 in * 120 dpi = 60x60 px   

mdpi         -> 160 dpi          => 0.5 x 0.5 in         => 0.5 in * 160 dpi = 80x80 px   

hdpi         -> 240 dpi          => 0.5 x 0.5 in         => 0.5 in * 240 dpi = 120x120 px  

xhdpi        -> 320 dpi          => 0.5 x 0.5 in         => 0.5 in * 320 dpi = 160x160 px  

xxhdpi       -> 480 dpi          => 0.5 x 0.5 in         => 0.5 in * 480 dpi = 240x240 px 

xxxhdpi      -> 640 dpi          => 0.5 x 0.5 in         => 0.5 in * 640 dpi = 320x320 px  

sp = масштабный независимый пиксель

dp = dip = независимые от плотности пиксели

dpi = точек на дюйм

Мы не должны использовать sp .

Мы должны использовать dp для поддержки нескольких экранов.

Android поддерживает различные разрешения экрана

  • ldpi (низкий) ~ 120 dpi
  • mdpi (средний) ~ 160 dpi
  • hdpi (высокая) ~ 240 dpi
  • xhdpi (extra-high) ~ 320 dpi
  • xxhdpi (extra-extra-high) ~ 480 dpi
  • xxxhdpi (extra-extra-extra-high) ~ 640 dpi

Устройство 120dp ldpi имеет 120 пикселей в размере 1 дюйм.

То же самое для других плотностей ...

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

pixel = dp * (плотность / 160)

Таким образом, 1 дескриптор устройства на 240 точек на дюйм будет иметь = 1 * (240/160) = 3/2 = 1,5 пикселя.

И 480 dpi устройства 1 dp будут иметь = 1 * (480/160) = 3 пикселя.

Используя знания 1,5 и 3 пиксела, инженер-программист может проектировать макеты для разных плотностей.

Чтобы проверить параметры экрана любого устройства:

DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);

Toast.makeText(
    this,
    "4:" + metrics.heightPixels + "," + metrics.density + ","
    + metrics.densityDpi, Toast.LENGTH_LONG).show();

Все, что связано с размером текста и внешнего вида, должно использовать sp или pt . Принимая во внимание, что с dp следует использовать все, что связано с размером элементов управления, макетов и т. Д.

Вы можете использовать как dp и dip в своих местах.


Вы можете увидеть разницу между px и dp из приведенного ниже рисунка, и вы также можете обнаружить, что px и dp не могут гарантировать одинаковые физические размеры на разных экранах.


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

Размер экрана
Фактический физический размер, измеренный как диагональ экрана. Для простоты Android группирует все фактические размеры экрана в четыре обобщенных размера: маленький, обычный, большой и очень большой.

Плотность экрана
Количество пикселей в физической области экрана; обычно называемый dpi (точек на дюйм). Например, экран с низкой плотностью имеет меньше пикселей в заданной физической области по сравнению с экраном с «нормальной» или «высокой» плотностью. Для простоты Android группирует все фактические плотности экрана в шесть обобщенных плотностей: низкое, среднее, высокое, сверхвысокое, сверх-экстра-высокое и сверх-экстра-экстра-высокое.

ориентация
Ориентация экрана с точки зрения пользователя. Это либо пейзаж, либо портрет, что означает, что соотношение сторон экрана является либо широким, либо высоким, соответственно. Помните, что по умолчанию разные устройства работают не только в разных ориентациях, но и во время работы, когда пользователь поворачивает устройство, ориентация может измениться.

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

Независимый от плотности пиксель (dp)
Виртуальный пиксельный блок, который следует использовать при определении макета пользовательского интерфейса, чтобы выразить размеры или положение макета независимо от плотности. Независимый от плотности пиксель эквивалентен одному физическому пикселю на экране с разрешением 160 точек на дюйм, который представляет собой базовую плотность, принимаемую системой для экрана средней плотности. Во время работы система прозрачно обрабатывает любое масштабирование блоков dp ​​по мере необходимости, исходя из фактической плотности используемого экрана. Преобразование блоков dp ​​в пиксели экрана просто: px = dp * (dpi / 160) . Например, на экране с разрешением 240 точек на дюйм 1 дп равен 1,5 физическим пикселям. Вы всегда должны использовать модули dp при определении пользовательского интерфейса вашего приложения, чтобы обеспечить правильное отображение вашего интерфейса на экранах с различной плотностью.

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


Разницу между параметрами dp и sp указанными как « предпочтение размера шрифта пользователя » ответами, скопированными из официальной документации, можно увидеть во время выполнения, изменив Settings->Accessibility->Large Text .

Опция « Large Text заставляет текст увеличиваться в 1.3 раза.

private static final float LARGE_FONT_SCALE = 1.3f;

Это может быть, конечно, зависит от поставщика, поскольку оно находится в packages/apps/Settings .


Я вычислил приведенную ниже формулу, чтобы сделать преобразование dpi в dp и sp


Я расскажу подробнее о том, как именно преобразование dp в px:

  • При запуске на устройстве mdpi изображение размером 150 x 150 px займет 150 * 150 dp экрана.
  • При запуске на устройстве hdpi изображение размером 150 x 150 px займет 100 * 100 dp пространства экрана.
  • Если вы работаете на устройстве xhdpi, изображение размером 150x150 px займет 75 * 75 dp экрана.

Другой способ: скажем, вы хотите добавить изображение в свое приложение, и вам нужно заполнить элемент управления 100 * 100 dp . Вам нужно будет создавать изображения разных размеров для поддерживаемых размеров экрана:

  • 100 * 100 px для mdpi
  • 150 * 150 px для hdpi
  • 200 * 200 px для xhdpi

Источник 1

Источник 2

Источник 3 : (данные из источника 3 приведены ниже)

Это значения измерения, определенные в XML. Измерение задается числом, за которым следует единица измерения. Например: 10px, 2in, 5sp. Android поддерживают следующие единицы измерения:

дп

Независимые от плотности пиксели - абстрактный блок, основанный на физической плотности экрана. Эти единицы относятся к экрану 160 точек на дюйм (точек на дюйм), на котором 1dp примерно равно 1px. При работе на экране с более высокой плотностью количество пикселей, используемых для рисования 1dp, масштабируется в соответствии с коэффициентом, соответствующим типу экрана. Аналогично, когда на экране с более низкой плотностью количество пикселей, используемых для 1dp, уменьшается. Отношение dp-to-pixel будет меняться с плотностью экрана, но не обязательно в прямой пропорции. Использование блоков dp ​​(вместо единиц пикселей) - это простое решение для правильного изменения размеров представления в вашем макете для разных плотностей экрана. Другими словами, он обеспечивает согласованность размеров вашего пользовательского интерфейса в реальном масштабе времени на разных устройствах.

зр

Масштабируемые пиксели - это похоже на блок dp, но также масштабируется по предпочтению размера шрифта пользователя. Рекомендуется использовать этот аппарат при задании размеров шрифта, поэтому они будут настроены как на плотность экрана, так и на предпочтения пользователя.

пт

Очки - 1/72 дюйма в зависимости от физического размера экрана.

ПВ

Пиксели - соответствует фактическим пикселям на экране. Эта единица измерения не рекомендуется, поскольку фактическое представление может варьироваться в зависимости от устройства; каждое устройство может иметь различное количество пикселей на дюйм и может иметь больше или меньше общих пикселей, доступных на экране.

мм

Миллиметры - на основе физического размера экрана.

в

Дюймы - на основе физического размера экрана.

Примечание. Измерение - это простой ресурс, на который ссылаются, используя значение, указанное в атрибуте name (а не имя файла XML). Таким образом, вы можете комбинировать ресурсы измерения с другими простыми ресурсами в одном XML-файле под одним элементом.


dp - dip . Используйте его для всего (маржа, прокладка и т. Д.).

Используйте sp для {text-size}.

Чтобы получить тот же размер при разных плотностях экрана, Android переводит эти единицы в пиксели во время выполнения, поэтому для вас нет сложной математики.

Посмотрите разницу между px , dp и sp на разных размерах экрана.

Источник: Android-программирование: руководство Big Nerd Ranch


px пикселей - точка на шкалу соответствует фактическим пикселям на экране.

в дюймах - на основе физических размеров экрана.

мм Миллиметры - на основе физического размера экрана.

pt Points - 1/72 дюйма в зависимости от физического размера экрана.

dp Плотность - независимые пиксели - абстрактный блок, основанный на физической плотности экрана. Эти единицы относятся к экрану с разрешением 160 точек на дюйм, поэтому один пиксель составляет один пиксель на экране с разрешением 160 точек на дюйм. Отношение dp-to-pixel будет меняться с плотностью экрана, но не обязательно в прямой пропорции. Примечание. Компилятор принимает как dip и dp , хотя dp более согласуется с sp .

sp -Scale-independent Pixels - это похоже на блок dp , но он также масштабируется по предпочтению размера шрифта пользователя. Рекомендуется использовать этот аппарат при задании размеров шрифта, поэтому они будут настроены как по плотности экрана, так и по предпочтениям пользователя.

Возьмем пример двух экранов с одинаковым размером, но плотность экрана составляет 160 точек на дюйм (точек на дюйм, то есть пикселей на дюйм), а другая - 240 точек на дюйм.

                          Lower resolution   screen          Higher resolution, same size
Physical Width                      1.5 inches                        1.5 inches
Dots Per Inch (“dpi”)               160                               240
Pixels (=width*dpi)                 240                               360
Density (factor of baseline 160)    1.0                               1.5

Density-independent Pixels          240                               240
(“dip” or “dp” or “dps”)

Scale-independent pixels 
 (“sip” or “sp”)                  Depends on user font size settings    same

Вот формула, используемая Android:

px = dp * (dpi / 160)

Где dpi - одна из следующих плотностей экрана. Список всех возможных плотностей здесь

Он определяет константы «DENSITY_ *».

  • ldpi (низкий) ~ 120dpi
  • mdpi (средний) ~ 160dpi
  • hdpi (высокий) ~ 240dpi
  • xhdpi (extra-high) ~ 320dpi
  • xxhdpi (extra-extra-high) ~ 480dpi
  • xxxhdpi (extra-extra-extra-high) ~ 640dpi

Взято отсюда .

Это позволит решить много путаницы при переводе между px и dp, если вы знаете свой экранный dpi.

Итак, скажем, вы хотите изображение 60 dp для экрана hdpi, тогда размер физического пикселя 60 дп:

px = 60 * (240 / 160)

ПВ

Пиксели - соответствуют фактическим пикселям на экране.

dp или dip

Плотно-независимые пиксели - абстрактный блок, основанный на физической плотности экрана. Эти единицы относятся к экрану с разрешением 160 точек на дюйм, поэтому один пиксель составляет один пиксель на экране с разрешением 160 точек на дюйм.

Использование dp:

Независимость от плотности - ваше приложение достигает «независимости плотности», когда оно сохраняет физический размер (с точки зрения пользователя) элементов пользовательского интерфейса при отображении на экранах с различной плотностью. (т.е.) Изображение должно выглядеть одинаковым (не увеличенным или сжатым) на разных экранах.

зр

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

http://developer.android.com/guide/topics/resources/more-resources.html#Dimension


Размер экрана в Android сгруппирован по категориям: small , medium , large , extra large , double-extra и triple-extra . Плотность экрана - это количество пикселей в пределах области (например, дюйма) экрана. Обычно он измеряется в точках на дюйм (dpi). Плотность экрана сгруппирована как низкая, средняя, ​​высокая и сверхвысокая. Разрешение - общее количество пикселей на экране.

  • dp: Независимый от плотности пиксель, он зависит от плотности экрана. В 160 dpi экран, 1 dp = 1 пиксель. За исключением размера шрифта, всегда используйте dp.
  • dip: dip == dp. В предыдущих версиях Android dip использовался, а затем был изменен на dp.
  • sp: Scale Independent Pixel, масштабируется в зависимости от предпочтений размера шрифта пользователя. Шрифты должны использовать sp.
  • px: наш обычный стандартный пиксель, который сопоставляется с пикселем экрана.
  • в дюймах, относительно физического размера экрана.
  • мм: миллиметры по размеру физического экрана.
  • pt: 1/72 дюйма, относительно физического размера экрана.

Формула для преобразования между единицами

 px = dp * (dpi / 160)

dp to px в устройстве

Следующий пример может помочь лучше понять. Масштабирование происходит на основе размера ковша 120 (ldpi), 160 (mdpi), 240 (hdpi), 320 (xhdpi), 480 (xxhdpi) и 640 (xxxhdpi). Предлагаемый коэффициент Google для проектирования составляет 3: 4: 6: 8: 12 для ldpi: mdpi: hdpi: xhdpi: xxhdpi

Изображение размером 150 пикселей x 150 пикселей будет занимать,

  • 150 dp X 150 dp пространство экрана в mdpi
  • 100 dp X 100 dp экранное пространство в hdpi
  • 75 dp X 75 dp пространство экрана в xhdpi

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

Калькулятор DPI в Java

/*
Program output
LDPI: 165.0 X 60.0
MDPI: 220.0 X 80.0
HDPI: 330.0 X 120.0
XHDPI: 440.0 X 160.0
XXHDPI: 660.0 X 240.0
XXXHDPI: 880.0 X 320.0
*/


public class DPICalculator {

private final float LDPI = 120;
private final float MDPI = 160;
private final float HDPI = 240;
private final float XHDPI = 320;
private final float XXHDPI = 480;
private final float XXXHDPI = 640;    

private float forDeviceDensity;
private float width;
private float height;

public DPICalculator(float forDeviceDensity, float width, float height){
    this.forDeviceDensity = forDeviceDensity;
    this.width = width;
    this.height = height;
}

public static void main(String... args) {
    DPICalculator dpiCalculator = new DPICalculator(240,330,120);
    dpiCalculator.calculateDPI();
}


private float getPx(float dp, float value) {
    float px = dp * (value / forDeviceDensity );        
    return px;
}

private void calculateDPI() {

    float ldpiW = getPx(LDPI,width);        
    float ldpiH =  getPx(LDPI,height);
    float mdpiW = getPx(MDPI,width);        
    float mdpiH =  getPx(MDPI,height);        
    float hdpiW = getPx(HDPI,width);        
    float hdpiH =  getPx(HDPI,height);       
    float xdpiW = getPx(XHDPI,width);        
    float xdpiH =  getPx(XHDPI,height);
    float xxdpiW = getPx(XXHDPI,width);        
    float xxdpiH =  getPx(XXHDPI,height);
    float xxxdpiW = getPx(XXXHDPI,width);        
    float xxxdpiH =  getPx(XXXHDPI,height);

    System.out.println("LDPI: " + ldpiW + " X " + ldpiH);
    System.out.println("MDPI: " + mdpiW + " X " + mdpiH);
    System.out.println("HDPI: " + hdpiW + " X " + hdpiH);
    System.out.println("XHDPI: " + xdpiW + " X " + xdpiH);
    System.out.println("XXHDPI: " + xxdpiW + " X " + xxdpiH);
    System.out.println("XXXHDPI: " + xxxdpiW + " X " + xxxdpiH);        
   }
}

Дополнительная информация ссылается на следующую ссылку.

http://javapapers.com/android/difference-between-dp-dip-sp-px-in-mm-pt-in-android/


Пожалуйста, прочитайте ответ из вики сообщества. Ниже приведена некоторая информация, которая будет рассмотрена в дополнение к вышеуказанным ответам.

sp = масштабный независимый пиксель

dp = независимые от плотности пиксели

dpi = плотность пикселей

Я прошел вышеупомянутые ответы ... не нахожу их в точности. sp для размера текста, dp для границ макета - стандартный. Но sp для размера текста сломает макет, если он используется небрежно в большинстве устройств.

sp берет текст для устройства, тогда как dp принимает стандарт плотности устройства (никогда не меняйте устройство). Скажем, текст 100sp может занимать 80% экрана или 100% экрана в зависимости от размера шрифта, установленного в устройстве

Вы также можете использовать sp для ограничений макета, он будет работать :) Нет стандартного приложения sp для всего текста

Используйте sp и dp для размера текста, учитывая UX.

  • Не используйте sp для текста на панели инструментов (можете использовать доступные размеры android)
  • Не используйте sp для текста в маленьких ограниченных кнопках, очень маленьком тексте и т. Д.

Некоторые люди используют огромный FONT в своем телефоне для большей удобочитаемости, что дает им небольшой размер жесткого кода, который будет проблемой UX. Поместите sp для текста там, где это необходимо, но убедитесь, что он не сломает макет.

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


Прежде чем ответить на этот вопрос, позвольте мне сначала уменьшить количество единиц. Итак, вы идете: dp или dip являются одинаковыми и известны как независимые от плотности пиксели .

1. px - обозначает пиксели. Пиксели - это одна точка, точка на экране. Обычно в мобильной индустрии он измеряется в ppi (пикселей на дюйм). Разрешение экрана прямо пропорционально ppi, чем больше пикселей на дюйм, тем выше разрешение экрана.

Например, если вы рисуете изображение размером 200 px * 200 px , то его внешний вид должен отличаться для устройства с высоким разрешением по сравнению с устройством с низким разрешением. Причина в том, что изображение на 200 пикселей на телефоне с низким разрешением будет выглядеть больше, чем на устройстве с высоким разрешением.

Ниже изображения показывают разрешение одного и того же изображения на разных телефонах -

  • Телефон с высоким разрешением экрана

  • Телефон с низким разрешением экрана

2. dip или dp - абстрактный блок, основанный на физической плотности экрана. Эти единицы относятся к экрану с разрешением 160 точек на дюйм, поэтому один пиксель составляет один пиксель на экране с разрешением 160 точек на дюйм. Отношение dp-to-pixel будет меняться с плотностью экрана, но не обязательно в прямой пропорции. «Независимость плотности» относится к равномерному отображению элементов пользовательского интерфейса на экранах с различной плотностью.

  • Изображение, показывающее 80 пикселей (изображение слева) и 80 дп (правое изображение) . Оформить заказ.

Значение dp равно одному физическому пикселю на экране с плотностью 160 . Для вычисления dp:

dp = (ширина в пикселях * 160) / плотность экрана

3. sp - обозначает масштабируемые пиксели. Обычно sp используется для текстов в пользовательском интерфейсе, а sp сохраняет настройки шрифта. Например, если пользователь выбрал более крупный шрифт, чем 30 sp, он будет автоматически масштабироваться, чтобы выглядеть крупным в соответствии с предпочтениями пользователя.


Я столкнулся с хорошей статьей о разработке пользовательского интерфейса Android для разных разрешений экрана, и я хотел бы оставить его здесь только для тех, кто ищет в этой области. Да, я знаю, что это как-то описано в документах Google (и упоминается в сообщениях выше), я читал это, но это было плохо для меня (да, я могу быть слишком глупым)). Мне осталось неясным, как создавать макеты, способные обрабатывать различные размеры экрана. Я ненавижу концепцию DP и т. Д., Когда мне нужно реализовать «гибкий» макет интерфейса для разных экранов. (Привет, разработчики iOS - да, вы правы, это концепция раскадровки).

У Android неплохая концепция пользовательского интерфейса, но, к сожалению, не хватает функций раскадровки iOS. Разработка гибкого пользовательского интерфейса в Android - это не просто (в лучшем случае).

Вот статья, которая помогла мне понять, что делать в Android, чтобы сделать макеты для разных размеров экрана:

Блог JMSTUDIO: - Определите размер экрана приложения Android

Как создать интерфейс для Android-приложений для разных размеров экрана

Чтобы создать пользовательский интерфейс приложения для разных размеров экрана, наш первоначальный дизайн должен соответствовать минимально требуемому пространству для каждого размера экрана. Android определяет минимальный размер (в dp) для каждого обобщенного типа экрана. Ниже приведено руководство по размеру экрана Android. Когда мы получаем размер экрана в формате dp, нам недостаточно разрабатывать интерфейс приложения для Android. Для каждого размера экрана нам нужно подготовить графические и растровые изображения для каждой плотности. Вот ориентир на плотность экрана Android.

Для удобства расчета мы можем следить за коэффициентом масштабирования 3: 4: 6: 8 между четырьмя обобщенными плотностями. Если мы создадим изображение размером 36 × 36 пикселей для устройства ldpi, размер снимков остальных размеров будет 48 × 48 для mdpi, 72 × 72 для hdpi и 96 × 96 для xhdpi.

Как создать интерфейс для Android-приложений в Photoshop

У многих дизайнеров есть проблемы для разработки пользовательского интерфейса Android-приложения в Photoshop или других графических инструментах, основанных на пикселях, из-за независимого от плотности модуля, дп. Дизайнеры не знают, как сопоставить dp с пикселем. Google также не дает четкого руководства по дизайну интерфейса Android для них, хотя они дают базовую формулу для преобразования dp и пикселей.

Как определение Android, 1pd равно 1px под 160 dpi (mdpi). Поэтому мы хотим разработать Android-приложение для Android-устройства xlarge с плотностью mdpi, мы можем определить наш размер пользовательского интерфейса в пикселях как 960 пикселей в ширину и 720 пикселей в высоту; Следуйте тому же правилу сопоставления, мы можем получить следующее руководство по дизайну интерфейса Android App:

ADDED : Если вы заинтересованы в «гибком» интерфейсе, посмотрите на эту библиотеку: Android SDK, который предоставляет новый размер - sdp (масштабируемый dp). Этот размерный блок масштабируется с размером экрана (это также упоминается в ответе здесь, о SDPбиблиотеке)

ADDED2 Google наконец поняла полезность концепции пользовательского интерфейса iOS Storeboard, и здесь идет речь ConstraintLayoutо мире Android: создайте отзывчивый интерфейс с помощью ConstraintLayout


Я хочу дать простой способ понять dp. На самом деле, я думаю, dpэто самый простой способ понять. dpэто всего лишь единица физической длины. Он имеет тот же размер, что mmи inch. Это просто удобно для нас , чтобы писать 50dp, 60dpа не 50/160 inchили 60/160 inch, потому что один dpтолько 1/160 inchнезависимо от размера экрана или разрешение.

Единственная проблема заключается в том, что андроид-тэд некоторых экранов не является точным. Например, экран, классифицированный как 160dpi, может иметь действительно 170dpi. Таким образом, результат вычисления dpнечеткий. Он должен быть примерно таким же 1/160 inch.







units-of-measurement