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
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
而且主线程阻塞还会引起activity ANR
推荐你另起一个线程,每隔两秒发送handler,然后在主线程改你的颜色。
因为我的需求就是在主界面上点击按钮,弹出对话框,在对话框里画几个图(1个1个的画,而不是一次性显示出来)
这是我用VC思维来写程序来Android程序引出来的问题。
现在明白了, 谢谢你的帮助。不要阻塞主线程,你在对话框里画,画玩一个就通知主线程更新一次。