如何按比例缩放/调整视图及其内容的大小?

时间:2017-05-16 04:00:17

标签: java android

抱歉,如果标题不好。我想缩放/调整视图及其后续子项的大小。

我尝试使用setScaleXsetScaleY,这是最简单的一个,但视图边界保持不变并留下空白。我试图通过改变高度和宽度来手动调整它的大小,包括它的孩子,但如果它包含TextView,我很难保持孩子的比例大小。

有没有最好的方式来实现它?

2 个答案:

答案 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

每次更改视图的高度和宽度时,应根据其父布局高度和宽度计算比例高度和宽度,动态比例计算以及相应地设置高度和宽度以及边距。