首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么这段代码只工作一次[Android-画布]

为什么这段代码只工作一次[Android-画布]
EN

Stack Overflow用户
提问于 2013-07-31 15:05:21
回答 2查看 472关注 0票数 0

我想在画布上画圆圈。我使用函数来执行id:

代码语言:javascript
复制
      public static  void add()
        {
            float a = 20 + (new Random()).nextInt(width-40);
            float b = 20 + (new Random()).nextInt(height-40);


            paint.setColor(Color.rgb(13, 13, 13));
            c.drawCircle(a, b, r, paint);

            paint.setColor(Color.rgb(119, 119, 119));
            c.drawCircle(a, b, r-3, paint);
        }

当它从"onDraw“调用时,它只工作一次。

附注:油漆,宽度,高度,c-公共变量。

民主联盟:

代码语言:javascript
复制
 protected void onDraw(Canvas canv)
    {
        super.onDraw(canv);
        c = canv;
        paint = new Paint();
        paint.setStyle(Paint.Style.FILL);
        paint.setAntiAlias(true);
        paint.setColor(Color.WHITE);
        c.drawPaint(paint);
        add();
    }
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-07-31 16:11:22

每当视图需要重新绘制自身时,都会调用onDraw()。这可能是由于许多原因,如布局改变,滚动等。

您也可以调用视图上的invalidate()来重新绘制。

如果你想以很高的速度画画,比如触摸绘画或游戏等等,考虑使用TextureView代替。

票数 0
EN

Stack Overflow用户

发布于 2013-07-31 15:13:48

我是这样做的。

1)定义自定义视图。

2)在其onDraw方法上,进行创建/显示循环。

3)在定制视图的onDraw方法的最后一行中调用失效()方法。

如果能用,请告诉我。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17974074

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档