Кнопка изменения размера Android программно - PullRequest
0 голосов
/ 05 ноября 2018

Можно ли программно назначить ширину и высоту RadioButton в Android? Я знаю, что мы можем сделать это, используя свойства scaleX и scaleY. Что я ищу, так это, если пользователь задает ширину и высоту в int, как мы можем применить это к RadioButton?

Ответы [ 2 ]

0 голосов
/ 05 ноября 2018

Поскольку RadioButton , наследуется от TextView , вы можете использовать myRadioButton.setHeight(int pixels) и .setWidth(int pixels), чтобы задать размер всей области кнопки, но не текста и не круга выбора , Чтобы изменить размер содержимого, но не общую область, вы можете использовать .setScaleX(float scale) и .setScaleY(), вы измените текст и область выбора, но не область кнопки.

Таким образом, чтобы изменить как область кнопки, так и размер ее содержимого:

    int desiredWidth = 500;  // Set to your desired width.
    int currentWidth = radioButton.getWidth();
    radioButton.setScaleX(desiredWidth / currentWidth);
    radioButton.setWidth(desiredWidth);

И для высоты.

Если вы хотите сохранить соотношение сторон, установите желаемую ширину, а затем:

desired_height = desired_width * current_height / current_width

Как это:

    int desiredWidth = 500;
    int currentHeight = radioButton.getHeight();
    int currentWidth = radioButton.getWidth();
    int desiredHeight = desiredWidth * currentHeight / currentWidth;
    radioButton.setScaleY(desiredHeight / currentHeight);
    radioButton.setHeight(desiredHeight);
    radioButton.setScaleX(desiredWidth / currentWidth);
    radioButton.setWidth(desiredWidth);

Похоже, что шкала регулируется от центра, без регулировки положения, поэтому вам, возможно, придется изменить положение (возможно, это будет спорным, если вы используете ConstraintLayout - с LinearLayout мои кнопки стекают с экрана, когда Я изменил их размер таким образом).

0 голосов
/ 05 ноября 2018

Попробуйте это:

myRadioButton.getButtonDrawable().setBounds(/* play around with the bounds */);

В документации по классу Drawable говорится, что именно так вы можете изменить размер Drawable. К сожалению, не совсем понятно, как это работает, поэтому вам нужно поиграть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...