我有一个RadioGroup我试图缩小,因为它太大了。所以我用setScaleX()setScaleY()来缩小它。
它可以工作,但问题是当我缩放视图时,视图会更改X和Y位置。我希望缩放后保持左上角的坐标不变。如何使缩放后的视图保持不变?
请参见下面的代码:

CSRadioButton radiobutton = (CSRadioButton) field;
RadioGroup rg = new RadioGroup(this);
rg.setOrientation(RadioGroup.VERTICAL);
JSONArray choices = radiobutton.getChoices();
for(int j = 0; j < choices.length(); j++){
    JSONObject currObj = choices.getJSONObject(j);
    String text = currObj.getString("text");
    RadioButton rb = new RadioButton(this);
    rb.setText(text);
    rg.addView(rb);
}

rscroll.addView(rg, lp);

rg.setScaleX(0.7f);
rg.setScaleY(0.7f);

最佳答案

缩放和旋转aView的默认轴点是其中心。您可以使用View.setPivotX()View.setPivotY()设置所需的轴坐标:

rscroll.addView(rg, lp);

rg.setPivotX(0);
rg.setPivotY(0);

rg.setScaleX(0.7f);
rg.setScaleY(0.7f);

这将导致左上角保持固定。

10-04 18:25