LinearLayout にはいくつかのボタンがあります。ボタンには 1 つの重みがあるため、レイアウトに均等に配置されます。私はこのようなことをしたい
for (int i = 0; i < texts.size(); ++i) {
Button button = new Button(/*context*/);
button.setLayoutParams(/*WRAP_CONTENT, MATCH_PARENT, 1.0f*/)
button.setText(texts[i]);
float fontSize = 20.0f;
button.setTextSize();
while (textDoesNotFitIntoButton(button)) {
fontSize -= 2.0f;
button.setTextSize(fontSize);
}
linearLayout.addView(button);
}
テキストがボタンに収まらないかどうかを確認するにはどうすればよいですか?
ポイントは、すべてのボタンをテキストで埋めて、テキストが利用可能なすべてのスペースを占有し、切り捨てられたり行に分割されたりしないようにすることです。
たとえば
String[] texts = new String[] { "0", "sin^-1" };
、スペース全体を占めるように「0」のテキストサイズを 1 つ選択すると、「sin」が「sin^」と「-1」の 2 行に分割されるか、「0」が本来よりも小さく表示されます。