是否可以通过编程为Android中的RadioButton分配宽度和高度?我知道我们可以通过使用scaleX和scaleY属性来做到这一点。我要寻找的是,如果用户输入int的宽度和高度,我们如何将其应用于RadioButton?
答案 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时,我的按钮会在屏幕上不显示我以这种方式调整了它们的大小。)