我有两种方式:
第一的:
textView.setTextSize(getResources().getDimension(R.dimen.defaultTextSize));
xml中的第二个:
android:textSize="@dimen/defaultTextSize"
在values/dimen.xml中,我用20sp声明了defaultTextSize
在我的第一种情况下,文本比第二种情况下大得多(在某些屏幕重新命名中有所不同)。为什么?
我做错了吗?
最佳答案
setTextSize()
以单位为像素
用这个
public float pixelsToSp(float px)
{
float scaledDensity = _context.getResources().getDisplayMetrics().scaledDensity;
return px/scaledDensity;
}
textView.setTextSize(pixelsToSp(getResources().getDimension(R.dimen.defaultTextSize)));
或者
textView.setTextSize(TypedValue.COMPLEX_UNIT_PX, getResources().getDimension(R.dimen.defaultTextSize))
关于android - Android文字大小以编程方式太大,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28071584/