Android 中的大小单位是如何应用的?
How size units in Android are applied?
在axml文件中添加视图时,可以简单地指定视图属性的大小和单位,例如:
<TextView
android:TextSize = "10sp"
android:layout_marginTop = "10dp" />
但是当以编程方式应用尺寸时,尺寸 sp 应用的单位是什么? DP?像素?
TextView tv = new TextView();
tv.TextSize = 10;
另外,如何换算单位?
sp
是 TextView.TextSize
的默认值:
Set the default text size to the given value, interpreted as "scaled pixel" units. This size is adjusted based on the current density and user font size preference.`
如果您需要不同的单位类型 (ComplexUnitType
),请使用 SetTextSize
方法:
textview.SetTextSize(ComplexUnitType.Px, 20);
一位朋友刚刚回答我,默认情况下 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).
``
在axml文件中添加视图时,可以简单地指定视图属性的大小和单位,例如:
<TextView
android:TextSize = "10sp"
android:layout_marginTop = "10dp" />
但是当以编程方式应用尺寸时,尺寸 sp 应用的单位是什么? DP?像素?
TextView tv = new TextView();
tv.TextSize = 10;
另外,如何换算单位?
sp
是 TextView.TextSize
的默认值:
Set the default text size to the given value, interpreted as "scaled pixel" units. This size is adjusted based on the current density and user font size preference.`
如果您需要不同的单位类型 (ComplexUnitType
),请使用 SetTextSize
方法:
textview.SetTextSize(ComplexUnitType.Px, 20);
一位朋友刚刚回答我,默认情况下 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).
``