Android Textview 文本大小与 XML 和 Java 设置的不同

Android Textview text size is different as set by XML and Java

当我通过布局 XML 和 [=26= 设置 TextView 的文本大小时,我得到不同的文本大小]Java代码。我的布局如下所示。

<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 设置的文本大小。我做错了什么?

您需要按屏幕密度减小尺寸

titleView.setTextSize(TypedValue.COMPLEX_UNIT_SP, (18 / getResources().getDisplayMetrics().density));