8
是否有任何方法可以計算出在某個Font
中某個String
是多少像素寬?找出特定字體中字符串的寬度
在我的Activity
,有動態String
s放在Button
。有時,String
太長,它分成兩行,這使Button
看起來很醜。但是,由於我不使用某種控制檯Font
,單個字符寬度可能會有所不同。所以這不是一個幫助寫類似
String test = "someString";
if(someString.length()>/*someValue*/){
// decrement Font size
}
因爲「mmmmmmmm」比「iiiiiiii」寬。
另外,Android中是否有一種方法可以在某一行上安裝某個String
,因此係統會自動「縮放」Font
尺寸?
編輯:
因爲從wsanville答案是非常好的,這是我的代碼中動態設置字體大小:
private void setupButton(){
Button button = new Button();
button.setText(getButtonText()); // getButtonText() is a custom method which returns me a certain String
Paint paint = button.getPaint();
float t = 0;
if(paint.measureText(button.getText().toString())>323.0){ //323.0 is the max width fitting in the button
t = getAppropriateTextSize(button);
button.setTextSize(t);
}
}
private float getAppropriateTextSize(Button button){
float textSize = 0;
Paint paint = button.getPaint();
textSize = paint.getTextSize();
while(paint.measureText(button.getText().toString())>323.0){
textSize -= 0.25;
button.setTextSize(textSize);
}
return textSize;
}
非常感謝您的提示,請參閱原文中的解答 –