抱歉,如果标题不好。我想缩放/调整视图及其后续子项的大小。
我尝试使用setScaleX
和setScaleY
,这是最简单的一个,但视图边界保持不变并留下空白。我试图通过改变高度和宽度来手动调整它的大小,包括它的孩子,但如果它包含TextView,我很难保持孩子的比例大小。
有没有最好的方式来实现它?
答案 0 :(得分:0)
您可以使用以下方法缩放视图及其后续子级。希望它可以帮到你
public static void scaleView(View view, float scaleX, float scaleY) {
if (view instanceof ViewGroup) {
int viewCount = ((ViewGroup) view).getChildCount();
for (int i = 0; i < viewCount; i++) {
scaleView(((ViewGroup) view).getChildAt(i), scaleX, scaleY);
}
}
view.setScaleX(scaleX);
view.setScaleY(scaleY);
}
答案 1 :(得分:0)
为此,您需要计算每个布局及其子项的比例高度和宽度。然后您可以计算边距并为每个视图设置MarginLayoutParms
。
每次更改视图的高度和宽度时,应根据其父布局高度和宽度计算比例高度和宽度,动态比例计算以及相应地设置高度和宽度以及边距。