在我的xml中,TextView上有这样的内容:
android:textSize="18dp" (是的,我知道dp不适合文本,但这不是重点)
我还有一些正在以编程方式创建的TextViews,并将TextSize设置为:
view.TextSize = TypedValue.ApplyDimension(ComplexUnitType.Dip, 18, Resources.DisplayMetrics);但是,后一个文本大小(以编程方式创建的文本大小)似乎要比XML版本大得多。我想知道为什么?)
发布于 2017-03-17 08:56:41
您应该使用setTextSize(TypedValue.COMPLEX_UNIT_PX,textSize);因为getDimension方法的文档声明它返回一个资源维度值乘以适当的度量。我知道这是预先计算出来的绝对px值。
也就是说,使用:
tv.setTextSize(TypedValue.COMPLEX_UNIT_PX,getResources().getDimension(R.dimen.text_size_small));发布于 2017-03-17 08:58:20
尝尝这个
text.setTextSize(TypedValue.COMPLEX_UNIT_SP,14);
Or
textView.setTextSize(TypedValue.COMPLEX_UNIT_PX,getResources().getDimension(R.dimen.font));发布于 2017-03-17 09:50:30
您需要在dimens.xml中的value文件夹中声明维度中的文本大小,并获取该值并将其设置为您的TextView,如下所示。
dimens.xml
<resources>
<!-- Default screen margins, per the Android Design guidelines. -->
<dimen name="text_size">18dp</dimen>
</resources>从text_size中获取dimens.xml,如下所示:
textView.setTextSize(getResources().getDimension(R.dimen.text_size));//下一行以像素为单位返回dp值。
int text_size = getResources().getDimension(R.dimen.text_size);https://stackoverflow.com/questions/42852834
复制相似问题