Как применяются единицы измерения размера в Android? - PullRequest
0 голосов
/ 11 февраля 2019

При добавлении представления в файл axml можно просто указать размер и единицы атрибута представления, например:

<TextView
    android:TextSize = "10sp"
    android:layout_marginTop = "10dp" />

Но при программном применении размера каковыединицы применяются для размера sp?дп?px?

TextView tv = new TextView();
tv.TextSize = 10;

Кроме того, как я могу конвертировать единицы?

Ответы [ 2 ]

0 голосов
/ 11 февраля 2019

Друг только что ответил мне, что по умолчанию Android использует «sp» для размера текста и «px» для размера представления, но возможно преобразовать единицы измерения следующим образом:

TextView tv = new TextView();
tv.setTextSize(TypedValue.COMPLEX_UNIT_PX, 10); // Sets text in px (Pixel).
tv.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 10); // Sets text in dip (Device Independent Pixels).
tv.setTextSize(TypedValue.COMPLEX_UNIT_SP, 10); // Sets text in sp (Scaled Pixel).
tv.setTextSize(TypedValue.COMPLEX_UNIT_PT, 10); // Sets text in pt (Points).
tv.setTextSize(TypedValue.COMPLEX_UNIT_IN, 10); // Sets text in in (inches).
tv.setTextSize(TypedValue.COMPLEX_UNIT_MM, 10); // Sets text in mm (millimeters).
``
0 голосов
/ 11 февраля 2019

sp - это значение по умолчанию, используемое для TextView.TextSize:

Установите размер текста по умолчанию для данного значения, интерпретируемого как единицы измерения «масштабированный пиксель».Этот размер корректируется на основе текущей плотности и предпочтения размера шрифта пользователя.

Используйте метод SetTextSize, если вам нужен другой тип единиц измерения (ComplexUnitType):

textview.SetTextSize(ComplexUnitType.Px, 20);
...