2011-11-16 116 views
0

当我按下加载按钮,我想假设去厨房,选择一张图片,然后将imageview img设置为该图片。问题是我在厨房中选择了一张照片后,imageview没有更新。但是,如果我第二次按加载按钮,则需要一两秒钟才能加载厨房,在此期间,imageview将加载我之前选择的图片。有人能帮助我,让我能得到的ImageView刷新正确加载图片后,imageview不更新

load.setOnClickListener(new OnClickListener(){ 
      @Override 
      public void onClick(View arg0) {   
       Intent intent = new Intent(); 
       intent.setType("image/*"); 
       intent.setAction(Intent.ACTION_GET_CONTENT); 
       startActivityForResult(Intent.createChooser(intent, "Select Picture"), SELECT_PICTURE); 
       try { 

        FileInputStream in = new FileInputStream(selectedImagePath); 
        bMap = BitmapFactory.decodeStream(in); 
        img.setImageBitmap(bMap); 
        if (in != null) { 
         in.close(); 
        } 
        img.invalidate(); 

       } catch (Exception e) {} 
      }  
}); 

回答

2

好了,这不以这种方式工作:) 你应该将你的代码加载和设置位图到onActivityResult方法。另外,捕获异常实例非常糟糕 - 只尝试捕获相应的检查异常 - 例如FileNotFoundException或某事 - 您可以删除您的try-catch clasuse,然后在Eclipse中选择FileInputStream in = new ...行时提示ctrl + 1 - >用try-catch选项选择环绕声,eclipse会为你自动生成适当的catch子句(这里我的意思是恰当的被检查的异常处理,而不是catch子句体:))。

+0

谢谢,我把加载和设置位图到我的活动结果后,它的工作 – help