如何在不移动 X、Y 位置的情况下缩放视图?
How to scale a View without it moving X, Y position?
我有一个 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);
缩放和旋转 View
的默认轴心点是它的中心。您可以使用 View.setPivotX()
和 View.setPivotY()
:
设置所需的枢轴坐标
rscroll.addView(rg, lp);
rg.setPivotX(0);
rg.setPivotY(0);
rg.setScaleX(0.7f);
rg.setScaleY(0.7f);
这将导致左上角保持固定。
我有一个 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);
缩放和旋转 View
的默认轴心点是它的中心。您可以使用 View.setPivotX()
和 View.setPivotY()
:
rscroll.addView(rg, lp);
rg.setPivotX(0);
rg.setPivotY(0);
rg.setScaleX(0.7f);
rg.setScaleY(0.7f);
这将导致左上角保持固定。