在axml文件中添加视图时,可以简单地指定视图属性的大小和单位,例如:
<TextView
android:TextSize = "10sp"
android:layout_marginTop = "10dp" />
但是,通过编程方式应用尺寸时,尺寸sp的单位是什么? dp? px?
TextView tv = new TextView();
tv.TextSize = 10;
另外,如何转换单位?
答案 0 :(得分:2)
sp
是TextView.TextSize
的默认设置:
将默认文本大小设置为给定值,以“缩放像素”为单位。此大小是根据当前密度和用户字体大小首选项进行调整的。
如果需要其他单位类型(SetTextSize
),请使用ComplexUnitType
方法:
textview.SetTextSize(ComplexUnitType.Px, 20);
答案 1 :(得分:1)
一个朋友刚刚回答我,默认情况下,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).
``