2015-05-05 61 views
0

好吧我知道已經有很多問題提出與我所問的相同的問題,但問題是這些解決方案都不適合我或者我想要的。我的問題是,當我使用Paint類的setTextSize方法時,文字在較小的屏幕上顯得太大,在較大的屏幕上顯示得較小。我想要的是能夠將其更改爲我想要的尺寸,然後在任何其他設備上尺寸應該相應地變化(縮小,放大),並且它應該以相同的方式顯示(不相同大小)在其他設備上。而且我已經嘗試過將密度乘以我想要的密度和所有其他的東西,但它不起作用。Android Paint settextsize

+0

使用res下的dimens.xml文件來控制不同設備的不同文本大小。檢查此** http://stackoverflow.com/questions/21280277/different-values-folders-in-android** – Nabin

+0

我應該使用什麼文本縮放因子?所以如果我在一個屏幕上喜歡一定的尺寸,我如何從這個數字縮放到其他屏幕密度? – user3698077

+0

等待這不是將數字乘以密度(即如果我想使用16 dp,我的確:16 * ... DisplayMetrics.density)。我說過我已經試過這個,但它不適用於我,這就是爲什麼我發佈這個問題。 – user3698077

回答

0

首先,您使用的任何尺寸都應基於縮放像素。單位sp相對於用戶定義的默認大小。這對於看不慣的人可以選擇更大的文本大小,並且所有文本都將相對於此選擇進行縮放。您不應該在dp或px中設計文本,因爲這些文字都不會隨系統字體大小而縮放。當你調用getTextSize/setTextSize時,它應該被視爲sp。

至於它在所有屏幕上看起來完全相同 - 你不會那麼做,因爲不同的OEM使用不同的默認高度和不同的默認字體,更不用說用戶可以覆蓋其中任何一個。完美的像素不應該是你的目標。這很好,因爲它實際上不可能。

+0

但我的文本(高分)就像這個板子裏面一樣,我需要一種方式來保持它的外觀(即在不同的設備上看起來相同)。因爲發生的事情是,在一個較小的設備上,文本會越過董事會的邊界,使其顯得非常不專業。必須有一種方法可以使文本在不同設備上顯示出類似的效果,而不必通過每臺設備,並嘗試每種文本大小,以查看哪種設備適合哪種設備...... – user3698077

+0

歡迎來到美妙的發展世界。對於你的下一個竅門,嘗試翻譯成西班牙語,看看它的外觀 - 一半的單詞將是兩倍長,沒有任何適合的。 –

+0

那麼其他遊戲怎麼做呢?你說的東西是不可能的,因爲它已經完成了......只要我知道如何適當地縮放一種語言,其他翻譯就是我可以處理的,其餘的只是重複,但是對於我想要的每種語言。我只需要根據屏幕縮放一組文本的技巧。 – user3698077