2016-01-24 31 views
0

我设置字体大小为15dp TextView的安卓:文字大小设置为全分辨率

这种字体标准分辨率手机但对于平板电脑没有标准

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

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

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

我想字体建议使用SP单元分辨率

+0

'我把字体大小设置为15dp'这是**错误**字体大小必须在** sp **中给出,而不是在dp中。 –

回答

1

你或许应该详细了解Android大小单位和他们之间的分歧。

  • dp是密度独立像素。这是用来代替普通像素,因为android设备有不同的屏幕密度或点距。例如对于50像素×50像素的正方形,当屏幕密度很高时,它会显得更小。那么如何预防呢?使用dp!它确保无论屏幕密度如何,该东西总是以相同的实际大小出现。
  • sp是比例依赖像素。当你处理文本时,这通常是首选。当屏幕较大时,您希望文字更大,对吗?然后使用sp!它确保了屏幕尺寸越大,文字大小越大。

对于TL;博士,只需使用SP FOR TEXT!

+0

谢谢您的信息 – Mohammad

+0

哦!我使用sp的textview和imageview,但不工作! – Mohammad

+0

@Mhamhammad你能告诉我你的代码吗? – Sweeper

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. 
+1

你应该更多地解释你的代码。不鼓励使用纯代码的答案。 – Sweeper

0

的大小比为文本,因为在ICS以上(可能是太蜂窝,纠正我,如果我错了),对于用户的字体大小的偏好。所以,如果你使用的是姜饼或更低,你将无法找到这个设置。

首选项在设置,显示,字体大小下。在“设置”,“辅助功能”,“大文本”下也有一个选项。

在坚果壳:总是给人以SP文本大小不是DP