当我通过布局 XML 和 Java 代码设置 TextView 的文字大小时,我会得到不同的文字大小。我的布局如下所示。
<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Some text"
android:textSize="18sp"/>
我尝试通过以下两种方式在Java中设置文本大小。
选项1
TextView titleView = (TextView) view.findViewById(R.id.title);
titleView.setTextSize(18 * getResources().getDisplayMetrics().density);
选项2
TextView titleView = (TextView) view.findViewById(R.id.title);
titleView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 18);
Java代码(选项1和2)设置的文本大小比布局XML设置的文本大小大得多。我做错了什么?
答案 0 :(得分:1)
您需要按屏幕密度缩小尺寸
titleView.setTextSize(TypedValue.COMPLEX_UNIT_SP, (18 / getResources().getDisplayMetrics().density));