Android:文本大小设置为所有分辨率

时间:2016-01-24 10:08:22

标签: android textview standards

我将TextView的字体大小设置为15dp

此移动分辨率的字体标准,但平板电脑不是标准

手机版:i.stack.imgur.com/zqNmw.png

平板电脑版:i.stack.imgur.com/KQFOV.png

我想要平板电脑版本:i.stack.imgur.com/KHaPP.png

我想要分辨率的字体大小比率

3 个答案:

答案 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中的文本大小