Android 能否将画布放置/限制为布局

Android 能否将画布放置/限制为布局,android,canvas,android-relativelayout,Android,Canvas,Android Relativelayout,我对Android编程还很陌生,我一直在思考如何正确使用它 我的情况是,我想在RelativeLayout中绘制一个矩形,并能够相对于RelativeLayout的大小动态更改矩形的形状,而RelativeLayout不包含整个屏幕 我的问题是,当我尝试实现这一点时,矩形的大小仍然是相对于屏幕大小的 是否有一种方法可以将画布大小限制为相对大小,还是有更好的方法 这是我的maim活动代码的一部分 RelativeLayout.LayoutParams rl = new RelativeLayout

我对Android编程还很陌生,我一直在思考如何正确使用它

我的情况是,我想在RelativeLayout中绘制一个矩形,并能够相对于RelativeLayout的大小动态更改矩形的形状,而RelativeLayout不包含整个屏幕

我的问题是,当我尝试实现这一点时,矩形的大小仍然是相对于屏幕大小的

是否有一种方法可以将画布大小限制为相对大小,还是有更好的方法

这是我的maim活动代码的一部分

RelativeLayout.LayoutParams rl = new RelativeLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
    blueView = new Bar(this);
    blueView.setLayoutParams(rl);
    blueLayout.addView(blueView);
我还有一个扩展视图的Bar类

public class Bar extends View{

Rect theBar;

public Bar(Context context) {
    super(context);

}

@Override
protected void onDraw(Canvas canvas) {
    // TODO Auto-generated method stub
    super.onDraw(canvas);

    theBar = new Rect();
    theBar.set(0, 0, canvas.getWidth(), canvas.getHeight()/2);

    Paint blue = new Paint();
    blue.setColor(Color.BLACK);
    blue.setStyle(Paint.Style.FILL);

    canvas.drawRect(theBar, blue);
}

}

尝试用
getWidth()
getHeight()替换
canvas.getWidth()
getHeight()