final ImageView iv = new ImageView(this);

new Thread(new Runnable() {

@Override
public void run() {
iv.setImageResource(R.drawable.alert_dark_frame);
}
}).start();

this.setContentView(iv);不是说只能在UI线程中更新 bitmap么??

解决方案 »

  1.   

    可能是由于执行太快了,当iv.setImageResource(R.drawable.alert_dark_frame);执行的时候,this.setContentView(iv);还未执行完成,导致还没有ContentView的时候,只是改变了iv的值,并未改变界面。可以在iv.setImageResource(R.drawable.alert_dark_frame);的前面加一段延迟语句可以让setContentView先运行完成就会出错。
    synchronized(this){
    try{

    wait(500); //延迟0.5秒
    }
    catch (InterruptedException e)
    {
    e.printStackTrace(); }}
    以上纯属个人猜测!