2013-10-26 31 views
2

我指定sp中的所有字體大小。在包括Nexus 7,Galaxy S4 mini等在內的多種設備上,文本看起來不錯。但是,在Galaxy S 3上,字體太大。這是因爲S3的DPI更多嗎?如果是這樣,我該如何調整以使字體以相對相似的尺寸顯示?不同dpis上字體大小的問題

+1

請參閱上面的鏈接。如果一個設備上具有相同'sp'尺寸的字體在另一個設備上顯示的大於另一個設備上的字體,則*字體縮放工作正常*。 在S3上,檢查設置/顯示/字體大小,並驗證它是「正常」,而不是「大」。如果你需要你的字體大小一致,使用'dp'而不是'sp' - 但只能用它作爲最後的手段。可以縮放字體大小的原因是允許視力不佳的用戶使應用程序適用於他們。 – 323go

+0

你是否爲不同的密度定義了不同的字體大小? –

回答

2

DP/SP似乎正常工作。我得到的更大的字體大小是因爲以編程方式設置文本大小,使用已經返回縮放的資源值 - 所以基本上字體被雙倍縮放。 Android可以通過正確的文檔來阻止這種情況。

+0

謝謝,你可以接受你自己的答案;-)。 – JJ86

0

在我的項目,我用不同的 「dimens.xml」 文件對每種類型密度的文件夾,例如:

  • 價值觀MDPI
  • 值,華電國際
  • 價值觀xhdpi

dimens.xml有:

<!-- Text dimension for activity album preview --> 
<dimen name="text_album_title">20sp</dimen> 
<dimen name="text_album_author">18sp</dimen> 
<dimen name="text_album_info">13sp</dimen> 

<!-- Text dimension for row --> 
<dimen name="text_track_title">16sp</dimen> 
<dimen name="text_track_length">14sp</dimen> 

這對於文件夾中的每個文件都是不同的。由您決定大小,您將通過使用帶有TextView的佈局來看到每個維度之間的差異。試一試。

編輯

我完全錯了關於這個問題,這要歸功於Runloop和323go。

+0

謝謝,我會試試這個 – RunLoop

+0

請不要試一試。它徹底擊敗了'dp' /'sp'的目的。字體大小應該取決於屏幕大小,而不是密度。如果您通過密度提供了不同的值,那麼您的應用在舊版Nexus 7和新Nexus 7上會有所不同。@JaAd明顯錯誤地指出了這些值之間的相互作用。 – 323go

+0

@ 323go如果你這樣說。你能提供一個例子嗎?你將如何解決Run Loop問題? – JJ86