PopupWindow 里面的画面怎么进行变化. 例如我的程序, 想在PopupWindow 先画一个圈, 然后过2秒将圈的颜色变化一下,重绘。 但这个程序实际的效果只是显示后面那种颜色, 前面那种颜色根本不会出现。
  mView.SetPaintColor(3);
             //通知view组件重绘    
             mView.invalidate();
             mView.setMinimumHeight(500);  
             mView.setMinimumWidth(300);
          getPopupWindowInstance();
          mPopupWindow.showAtLocation(v, Gravity.TOP, 0, 0); 
          
             try {
      Thread.sleep(2000);
      } catch (InterruptedException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
      }
             
             
             mView.SetPaintColor(2);
             //通知view组件重绘    
             mView.invalidate();
             mPopupWindow.update();Java

解决方案 »

  1.   

    用主线程sleep然后刷新界面就是会显示最后的样子。
    而且主线程阻塞还会引起activity ANR 
    推荐你另起一个线程,每隔两秒发送handler,然后在主线程改你的颜色。
      

  2.   

    谢谢, 那请问下Android有没有其他类型的对话框,可以阻塞主线程。然后我可以在这个对话框进行绘图操作(画完一个图显示出来,再画另一个图并且显示出来,而不是所有内容一次性显示出来)的?
    因为我的需求就是在主界面上点击按钮,弹出对话框,在对话框里画几个图(1个1个的画,而不是一次性显示出来)
      

  3.   

    也就是说Android里只有主线程才能对图像界面进行刷新,所以弹出对话框里一个一个画图无论如果要多线程才能进行。
    这是我用VC思维来写程序来Android程序引出来的问题。
    现在明白了, 谢谢你的帮助。不要阻塞主线程,你在对话框里画,画玩一个就通知主线程更新一次。