试举一个简单例子, public void onDraw(Canvas canvas)
{
super.onDraw(canvas);

/* 在屏幕(0,0)处绘制图片mBitQQ */
GameView.drawImage(canvas, mBitQQ, 0, 0);
}然后在一个定时线程中执行 postInvalidate();,这样会刷新这个界面。但是,为了让操作更加流畅,我希望刷新 一小块区域(需要更新的部分,比如几个字体),不然的话我怕系统跟不上。
不知道有没有什么方法?类似VC++的 InvalidateRect();那种的。大家有什么相关知识都可以在这里说说!谢谢了!

解决方案 »

  1.   

    用Canvas的派生类GameCanvas类的flushGraphics方法可以刷新指定区域。
    http://blog.163.com/zhang75784326@126/blog/static/11950668720105127137/
      

  2.   

    NDK
    如果牵扯到效率问题还是用本地代码吧
      

  3.   


    有啊,使用下面这个重载版本
    postInvalidate(int left, int top, int right, int bottom) 
      

  4.   

    View.postInvalidateDelayed方法不是有这个功能嘛
      

  5.   

    用postInvalidate(int left, int top, int right, int bottom)
    左上角与右下角定位一个矩形框进行局部刷新
      

  6.   

    我在用postInvalidate(int left, int top, int right, int bottom)刷新时,存在问题,感觉如果更新区域小,却没有刷新View