我将TextView的字体大小设置为15dp
此移动分辨率的字体标准,但平板电脑不是标准
手机版:i.stack.imgur.com/zqNmw.png
平板电脑版:i.stack.imgur.com/KQFOV.png
我想要平板电脑版本:i.stack.imgur.com/KHaPP.png
我想要分辨率的字体大小比率
答案 0 :(得分:1)
您应该了解更多有关Android大小单位及其差异的信息。
dp
是与密度无关的像素。这用于代替普通像素是因为Android设备具有各种屏幕密度或点间距。例如对于50px乘50px的正方形,当屏幕密度很高时,它会显得更小。那么如何防止这种情况呢?使用dp!它确保无论屏幕密度如何,物体总是以相同的实际尺寸出现。 sp
是与比例相关的像素。在处理文本时,这通常是首选。当屏幕较大时,您希望文本更大,对吧?然后使用sp!它确保在屏幕尺寸较大时文本大小增加。对于tl; dr,只是使用SP for TEXT!
答案 1 :(得分:0)
int heightPixels, width, height;
float scaleFactor, heightDp, DiffheightDp;
WindowManager windowManager = (WindowManager)getSystemService(Context.WINDOW_SERVICE);
width = windowManager.getDefaultDisplay().getWidth();
height = windowManager.getDefaultDisplay().getHeight();
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
heightPixels = metrics.heightPixels;
scaleFactor = metrics.density;
heightDp = heightPixels / scaleFactor;
if(height > width ){
DiffheightDp = 592.0;
}else{
DiffheightDp = 360.0
}
textView.setTextSize((float) ((15.0 / DiffheightDp) * heightDp));
//15.0 is size you want.
答案 2 :(得分:0)
建议在文本中使用sp单位,因为在ICS及以上版本(也可以是Honeycomb,如果我错了,请纠正我),优先选择用户的字体大小。因此,如果您使用Gingerbread或更低版本,您将无法找到此设置。
首选项位于“设置”,“显示”,“字体大小”下。 “设置”,“辅助功能”,“大文本”下也有一个选项。
在坚果壳中:始终在sp中提供不在dp中的文本大小