String
特定の特定のピクセル幅が何ピクセルかを把握する方法Font
はありますか?
私の には、 に配置されたActivity
ダイナミクスがあります。が長すぎて 2 行に分かれている場合があり、見栄えが悪くなります。ただし、一種のコンソールを使用しないため、単一の文字幅は異なる場合があります。したがって、次のようなものを書くのは助けにはなりませんString
Button
String
Button
Font
String test = "someString";
if(someString.length()>/*someValue*/){
// decrement Font size
}
「mmmmmmmm」は「iiiiiiiii」よりも広いためです。
または、Android で 1 行に特定のサイズを合わせる方法があるので、システムはサイズを自動的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;
}