完成绘制android后禁用onDraw调用

时间:2013-12-17 12:47:36

标签: java android android-canvas

我想做以下事情:

  1. 获取画布

  2. 在画布上绘制矩形和位图列表 基于for循环

  3. 绘制完所有项目后,
  4. 不会调用onDraw 我旋转设备,因为我尝试时应用程序太慢了 浏览它

  5. 我的画布在Horizo​​ntalScrollView

  6. 当我尝试滚动时非常慢

    编辑:我正在扩展View类,所以我可以保存视图并且不要调用onDraw,除非我想让它无效吗?

    编辑2:这是我的onDraw方法

    @Override
        protected void onDraw(Canvas canvas) {
    
    
            super.onDraw(canvas);
    
            for (int i = 0 ; i < mIcons.size() ; i++) {
    
                prepareItem(canvas, paint, mIcons.get(i));
            }
    
        }
    
    请任何人可以帮忙吗?

2 个答案:

答案 0 :(得分:1)

您无法阻止调用onDraw,但您可以覆盖它并使用标志来判断它是否应该执行。我没有看到你的代码,但我建议你这样:

boolean callOnDraw = true;

   @Override
    protected void onDraw(Canvas canvas) {

        super.onDraw(canvas);

      if(callOnDraw){
        for (int i = 0 ; i < mIcons.size() ; i++) {

            prepareItem(canvas, paint, mIcons.get(i));
        }
        callOnDraw = false;
      }

    }

如果您想要停止绘图,请设置标记callOnDraw = false;

答案 1 :(得分:0)

我找到了一个解决方法来使这个工作,我画了位图,每次我尝试调用onDraw()我检查我的位图是否为空使用它

全部谢谢