在我的xml中,我在TextView上有这个:
android:textSize="18dp"
(是的,我知道dp不适合文字,但这不是重点)
我还有其他一些我以编程方式创建的TextView,我正在设置TextSize:
view.TextSize = TypedValue.ApplyDimension(ComplexUnitType.Dip, 18, Resources.DisplayMetrics);
但是,后一种文本大小(以编程方式创建的大小)似乎比XML版本大得多。我想知道为什么? :)
答案 0 :(得分:1)
你应该使用setTextSize(TypedValue.COMPLEX_UNIT_PX,textSize);因为getDimension方法的文档声明它返回Resource维值乘以适当的度量。我理解为预先计算的绝对px值。
即,使用:
tv.setTextSize(TypedValue.COMPLEX_UNIT_PX,getResources().getDimension(R.dimen.text_size_small));
答案 1 :(得分:0)
试试这个
<meta name="viewport" content="width=device-width, initial-scale=1">
答案 2 :(得分:0)
您需要在值文件夹的dimens.xml
中的维度中声明文字大小并获取该值并将其设置为TextView
,如下所示。
<强> dimens.xml 强>
<resources>
<!-- Default screen margins, per the Android Design guidelines. -->
<dimen name="text_size">18dp</dimen>
</resources>
从dimens.xml
获取text_size,如下所示代码:
textView.setTextSize(getResources().getDimension(R.dimen.text_size));
//下面的行以像素为单位返回dp值。
int text_size = getResources().getDimension(R.dimen.text_size);