如何在不移动X,Y位置的情况下缩放视图?

时间:2016-02-02 18:04:41

标签: android view scale

我有一个RadioGroup,我试图缩小它,因为它太大了。因此,我使用setScaleX()setScaleY()并将其缩小。

它有效,但问题是当我缩放时,视图会改变X和Y的位置。我希望它在缩放后保持相同的左上角坐标。如何在缩放后使View保持不变?

见下面的代码:

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); 

1 个答案:

答案 0 :(得分:6)

缩放和旋转View的默认枢轴点是其中心。您可以使用View.setPivotX()View.setPivotY()

设置所需的轴心坐标
rscroll.addView(rg, lp);

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

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

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