地图是由一张张小图片拼接而成的。
目前是这么实现的,但运行速度很慢,拖拽速度更是惨不忍睹。源码不方便直接给,给出目前实现方法1.自定义一个MapView,继承View,重写OnDraw方法,在ondraw里用canvas一张张图片读取后画上去(canvas.drawBitmap),这样实现了拼接2.拖拽,重写onTouchEvent,计算拖拽后需要加载的图片,然后重绘地图(触发onDraw)。也就是每次拖拽都会重绘一次,效率很低。
以上都是单线程。
现在想用多线程异步加载图片,可是在其他线程中加完图片后想显示就得使用invalidate,postInvalidate方法,这些都会触发ondraw方法来重绘所有图片。求高手帮忙,不甚感激上面说的可能有些乱,以下是一些简单的类似伪代码,希望能把问题表达清楚class MapView extends View{
         private List<Bitmap>() imgs = null;
  public void onDraw(Canvas canvas){
        //获得需要加载的图片列表
        //canvas.draw...............绘制图片
  }  
   public boolean onTouchEvent(MotionEvent event) {
switch(event.getAction()){

case MotionEvent.ACTION_MOVE:
//imgs=...更新需要显示的图片列表
invalidate();
}
  }
}

解决方案 »

  1.   

    是否瓦片地图不该以这种方式实现,应该定义一堆imageview,然后拼接,而不是自己自定义一个view来拼接?
      

  2.   

    我用的surfaceview,这个效率比较高,可以局部刷新
      

  3.   

    我的问题是这个链接,劳烦你点下看看我的描述,十分盼望你的回复和指教!http://topic.csdn.net/u/20120302/11/fcc51ece-996b-4d72-b0d3-2de57fada9ce.html
      

  4.   

    http://topic.csdn.net/u/20120302/11/fcc51ece-996b-4d72-b0d3-2de57fada9ce.html
    麻烦你看下我的问题,盼复!