我有一个代码选择器/裁剪器,其代码取自this site
他们在手机的外部存储空间中创建了图像,但我想将其存储在我应用的内部存储空间中,记录过程here
这是我检索临时文件的函数,但是当我尝试使用从此函数返回的文件时,图像不会改变。事实上,看着logcat,似乎resolveUri在我生成的那个文件上的坏位图uri上失败了。当我尝试设置图像URI时发生错误,导致我认为它没有正确保存。这对我来说很奇怪,考虑到网站的原始代码只是在SD卡中创建一个文件,并且代码可以正常读取/写入。所以我想知道问题出在哪里。
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
case PHOTO_PICKED:
if (resultCode == RESULT_OK) {
if (data != null) {
Bundle extras = data.getExtras();
if (extras != null) {
ImageView callerImage = (ImageView)findViewById(R.id.contact_image);
callerImage.setImageURI(Uri.fromFile(getTempFile()));
}
}
}
break;
}
}
private File getTempFile() {
try {
FileOutputStream fos = openFileOutput(TEMP_PHOTO_FILE, Context.MODE_WORLD_WRITEABLE);
fos.close();
File f = getFileStreamPath(TEMP_PHOTO_FILE);
return f;
} catch (FileNotFoundException e) {
// To be logged later
return null;
} catch (IOException e) {
// To be logged later
return null;
}
}
答案 0 :(得分:0)
没关系,我很傻。当我调用getTempFile时,每次重新创建文件时都是错误的。它应该只在初始调用时创建文件,并在其余时间打开它。