Android以编程方式调整单选按钮的大小

时间:2018-11-05 01:02:34

标签: android radio-button

是否可以通过编程为Android中的RadioButton分配宽度和高度?我知道我们可以通过使用scaleX和scaleY属性来做到这一点。我要寻找的是,如果用户输入int的宽度和高度,我们如何将其应用于RadioButton?

2 个答案:

答案 0 :(得分:0)

尝试一下:

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

Drawable class上的文档说,这就是更改Drawable大小的方法。不幸的是,如何尚不清楚,因此您需要进行尝试。

答案 1 :(得分:0)

由于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时,我的按钮会在屏幕上不显示我以这种方式调整了它们的大小。)