Поскольку это кнопка с двумя строками, нет ничего плохого в том, чтобы указывать ширину в самом XML в соответствии с большей строкой.
Но если вы хотите вычислить ширину строк, это просто:
Paint paint = toggleButton.getPaint();
float length = paint.measureText(YOUR_STRING);
Это дает вам ширину строки, которая будет отображаться на экране.Теперь установите ширину кнопки переключения с помощью LayoutParams
.
Допустим, родительский макет вашей кнопки переключения - LinearLayout.
, поэтому она должна выглядеть следующим образом:
toggleButton.setLayoutParams (newLayoutParams (WIDTH_YOU_CALCULATED, LinearLayout.LayoutParams.WRAP_CONTENT));
Это установит ширину и высоту вашей кнопки ToggleButton в соответствии с тем, что вы рассчитали.