Android - 使用layoutparams调整父视图和子视图

时间:2013-04-03 05:42:15

标签: android android-layout zoom android-view layoutparams

您好我有一个可以调整大小的自定义视图,并且视图中有很多子项

我想问的是如何使用布局参数调整父母和孩子的大小?怎么做?我已经尝试使用view.getWidthview.getHeight获取视图的宽度,但它总是返回零,因此我无法缩放它,以及如何以与父级相同的比例调整子视图的大小? / p>

我希望我的问题很清楚,但如果您需要其他解释,请将其留在评论中,我会编辑我的问题。

谢谢

2 个答案:

答案 0 :(得分:1)

private void resizeChildren(ViewGroup parent, int newWidth, int newHeight) {
    // size is in pixels so make sure you have taken device display density into account
    int childCount = parent.getChildCount();
    for(int i = 0; i < childCount; i++) {
        View v = parent.getChildAtIndex(i);
        if (v instanceof ViewGroup) {
            ((ViewGroup)v).LayoutParams = new ViewGroup.LayoutParams(newWidth, newHeight);
        }
    }
}

当父级的边界发生变化时调用上面的方法并将父级传递给它。所有ViewGroup类型的孩子都将调整大小。如果需要,您也可以递归地对每个孩子进行调用。在调整孩子的大小后,您可能必须在父母身上调用requestLayout()

答案 1 :(得分:-1)

使用此代码,您可以使用LayoutParams ...

调整父级和子级的大小
LinearLayout header;
LinearLayout.LayoutParams headerParam;

header = (LinearLayout) findViewById(R.id.topheaderimage);
headerParam = new LinearLayout.LayoutParams(200, 100);
TextView headertext = (TextView) findViewById(R.id.text);
header.addView(headerimage, headerParam);