我想扩展我的textview
字体大小,但是,我无法从非常简单的代码中理解它的行为,所以我无法控制字体大小。
TextView textView = (TextView)findViewById(R.id.textview2);
textView.setTextSize(textView.getTextSize());
字体大小不应该改变,但textView
改变了它的字体大小,而我使用了getTextSize()方法中的相同值。谁能解释一下?
答案 0 :(得分:3)
这里的区别在于setTextSize(int size)方法中的 单位类型默认为" sp"或"缩放像素"。这个值将是一个 每个屏幕密度的不同像素尺寸(ldpi,mdpi,hdpi)。
另一方面,getTextSize()返回实际的像素尺寸 文本。
它也解释了你的问题。完整的主题链接是here
如果你想转换它们,那么:
public static float pixel2Sp(Context context, float px) {
float scaledDensity = context.getResources().getDisplayMetrics().scaledDensity;
return px/scaledDensity;
}
textView.setTextSize(pixel2Sp(context, textView.getTextSize());