2016-01-24 89 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