Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/195.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何在画布上绘制相对线?_Android_Canvas_Android Relativelayout - Fatal编程技术网

Android 如何在画布上绘制相对线?

Android 如何在画布上绘制相对线?,android,canvas,android-relativelayout,Android,Canvas,Android Relativelayout,我想画一个带有所有子项的RelativeLayout到Canvas 这就是我一直想做的: // from View constructor container = (RelativeLayout) LayoutInflater.from(context).inflate(R.layout.containerLayout, null); @Override protected void onSizeChanged(int w, int h, int oldw, i

我想画一个带有所有子项的
RelativeLayout
Canvas

这就是我一直想做的:

    // from View constructor
    container = (RelativeLayout) LayoutInflater.from(context).inflate(R.layout.containerLayout, null);

    @Override
    protected void onSizeChanged(int w, int h, int oldw, int oldh) {
        super.onSizeChanged(w, h, oldw, oldh);
        container.layout(0,0, w, h);
    }

    @Override
    protected void onDraw(Canvas canvas) {
        canvas.drawRGB(0, 0, 0);
        container.draw(canvas);
    }
我调试并看到
onSizeChanged
调用时具有良好的值。这段代码也适用于
ImageView
,那么
RelativeLayout
有什么不同呢


我的问题是它不会在屏幕上画画,我没有看到它的任何孩子。如何解决此问题?

请检查以下示例。 在我这边,它工作得很好

RelativeLayout layout = new RelativeLayout(getContext());
TextView textView = new TextView(getContext());
textView.setVisibility(View.VISIBLE);
textView.setText("This is example");
layout.addView(textView);
textView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 10);

layout.measure(canvas.getWidth(), canvas.getHeight());
layout.layout(0, 0, canvas.getWidth(), canvas.getHeight());
layout.draw(canvas);

添加RelativeLAyout.mesure()可以解决这个问题

@Override
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
    super.onSizeChanged(w, h, oldw, oldh);
    container.measure(w, h);
    container.layout(0,0, w, h);
}

@HrundiV.Bakshi I补充了对该问题的澄清。我的问题是它现在正在显示。用相对布局包装textview并告诉我它是否有效,这正是我示例中的不同之处。这只是一个示例,请详细描述您的问题或源代码