当我按下加载按钮时,我想要去厨房,选择一张图片,然后将imageview img设置为该图片。问题是在我选择厨房中的图片后,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) {}
}
});
答案 0 :(得分:2)
嗯,这样做不行:)
您应该移动代码以加载并将位图设置为onActivityResult
方法。捕获Exception实例也是一个非常糟糕的例子 - 尝试只捕获相应的已检查异常 - 即FileNotFoundException或者其他东西 - 你可以删除你的try - catch clasuse,然后在Eclipse中删除pres ctrl + 1
FileInputStream in = new ...
行 - >使用try-catch选项选择环绕声,eclipse会自动生成适当的catch子句(这里我指的是要处理的正确的已检查异常,而不是catch子句体:)。