我想改变ImageView的图像,当点击它。文件路径是正确的,但当运行此方法停止应用程序。当debug app文件变量包含如下路径:/storage/emululated/0/nabege/images/1442670759552.jpg .
我使用以下代码:
btn_showImage.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
File file = new File(Environment.getExternalStorageDirectory().getPath()
+ "/nabege" + File.separator + "images" + File.separator + imageFileName);
try {
btn_showImage.setImageURI(Uri.fromFile(file));
}
catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
请建议。
尝试使用位图
btn_showImage.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
File file = new File(Environment.getExternalStorageDirectory().getPath()
+ "/nabege" + File.separator + "images" + File.separator + imageFileName);
try {
if(file.exists())
{
Bitmap image_bmp= BitmapFactory.decodeFile(file.getAbsolutePath());
btn_showImage.setImageBitmap(image_bmp);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
您的最小和目标sdk是什么?您可能需要在manifest文件中添加READ_EXTERNAL_STORAGE或WRITE_EXTERNAL_STORAGE(它隐式地授予READ_EXTERNAL_STORAGE权限):
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
看:http://developer.android.com/reference/android/Manifest.permission.html READ_EXTERNAL_STORAGE