使用setLayoutParams()但它不起作用

时间:2011-12-17 13:30:34

标签: android custom-view layoutparams

我创建一个自定义视图-MyImageView-在其中绘制位图,我使用setLayoutParams()来设置我的视图的宽度和高度,但它不起作用,我使用日志来跟踪我的视图的宽度和高度,我发现它们都是0,为什么宽度和高度都不是300?这是我的主要活动代码的一部分:

    myCanvas=new MyImageView(CanvasTest3Activity.this,Path);
    LinearLayout.LayoutParams p=new LinearLayout.LayoutParams(300,300);
    myCanvas.setLayoutParams(p);

这是MyImageView代码的一部分:

    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
    super.onMeasure(widthMeasureSpec, heightMeasureSpec);
    int parentwidth=MeasureSpec.getSize(widthMeasureSpec);
    int parentHeight=MeasureSpec.getSize(heightMeasureSpec);
    int mywidth=(int)(parentHeight*0.5);
    setMeasuredDimension(MeasureSpec.getSize(widthMeasureSpec),mywidth);
    }

1 个答案:

答案 0 :(得分:1)

您需要获取父视图并使用add方法添加视图+视图参数。类似的东西:

“ParentViewInstance.add(this_is_my_child_view,this_is_the_layout_params_for_my_child_view)”

这意味着子视图的LayoutParams类型应与ParentView LayoutParams的类型相同。请查看此answers代码示例。