Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.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
Java 画布未绘制所需对象_Java_Android_Android Canvas - Fatal编程技术网

Java 画布未绘制所需对象

Java 画布未绘制所需对象,java,android,android-canvas,Java,Android,Android Canvas,在loadpng块中编程reach…它还打印吐司“它应该画一些东西,但它不画圆,而是画我的数组列表中所有剩余的东西” 我不知道为什么它没有在加载png块中绘制我所需的对象。。。。任何帮助都将不胜感激请尝试删除invalidate()调用。在onDraw()内部调用invalidate()没有意义,因为首先调用oDraw()的是无效 您在onDraw()中调用它的事实可能会导致Android做一些意想不到的事情。请显示get\u paint()code。 @Override public void

在loadpng块中编程reach…它还打印吐司“它应该画一些东西,但它不画圆,而是画我的数组列表中所有剩余的东西”


我不知道为什么它没有在加载png块中绘制我所需的对象。。。。任何帮助都将不胜感激

请尝试删除
invalidate()
调用。在
onDraw()
内部调用
invalidate()
没有意义,因为首先调用
oDraw()
的是无效

您在
onDraw()
中调用它的事实可能会导致Android做一些意想不到的事情。

请显示
get\u paint()
code。
@Override
public void onDraw(Canvas canvas) {
    canvas.drawColor(Color.WHITE);
    int p=0,cir=0,r=0,l=0;
    if(load_png)
    {
        Toast_Display.long_message(getContext(),"should draw something");
        canvas.drawCircle(300,300,100,get_paint(Color.WHITE,10));
        invalidate();

    }

    for(int sequence : sequence_draw)
    {
        if(sequence==1)
        {
            int color = color_name.get(p);
            int width = brush_width.get(p);
            Path mypath = path_list.get(p);
            Paint paint = get_paint(color,width);
            canvas.drawPath(mypath, paint);
            p++;
        }
        else if(sequence==2)
        {
            circle c = circles.get(cir);
            canvas.drawCircle(c.getCx(),c.getCy(),c.getRadious(),get_paint2(c.getColor(),c.getWidth()));
            cir++;
        }
        else if(sequence==3)
        {
            Rectangle rec = rectangles.get(r);
            canvas.drawRect(rec.getCx(),rec.getCy(),rec.getDx(),rec.getDy(),get_paint2(rec.getColor(),rec.getWidth()));
            r++;
        }
        else if(sequence==4)
        {
            Rectangle line = lines.get(l);
            canvas.drawLine(line.getCx(),line.getCy(),line.getDx(),line.getDy(),get_paint(line.getColor(),line.getWidth()));
            l++;
        }

    }

    if(draw==true)
    {
        if(status.equals("circle"))
            canvas.drawCircle(cx,cy,radious,get_paint2(current_circle_color,current_circle_width));
        else if(status.equals("rec"))
            canvas.drawRect(cx,cy,dx,dy,get_paint2(current_Rectngle_color,current_Rectngle_width));
        else if(status.equals("line"))
            canvas.drawLine(cx,cy,dx,dy,get_paint(current_line_color,current_line_width));
    }


}