我使用的下面的代码String fileName = "image" + "_" + title.getText().toString()+"_" + val.toString();
photo = this.createFile(fileName, ".jpg");
intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(photo));
uriOfPhoto = Uri.fromFile(photo);
startActivityForResult(intent, RESULT_CAMERA_SELECT);
}
}
catch(Exception e)
{
Log.v("Error", "Can't create file to take picture!");
displayAlert("Can't create file to take picture!","SDCard Error!");
}
}
private File createFile(String part, String ext) throws Exception
{
File tempDir = new File (Environment.getExternalStorageDirectory() + "/MyFolder/Images");
if(!tempDir.exists())
{
tempDir.mkdir();
}
tempDir.canWrite();
return new File(tempDir, part+ext);
}
});UriOfPhoto 给出提示uriString not chached in debug。它不是存储文件中的uri。如何解决这个问题呢?authority Uri$Part$EmptyPart (id=830004244032)
fragment Uri$Part$EmptyPart (id=830004245408)
host "NOT CACHED" (id=830003914304)
path Uri$PathPart (id=830067926736)
port -2
query Uri$Part$EmptyPart (id=830004245408)
scheme "file" (id=830002660688)
ssp null
uriString "NOT CACHED" (id=830003914304)
userInfo null
2 回答
婷婷同学_
TA贡献1844条经验 获得超8个赞
photo 的值是确定的,
photo = this.createFile(fileName, ".jpg"); intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(photo)); uriOfPhoto = Uri.fromFile(photo);
为什么还在这里实例化uriOfPhoto, 有点多余。 在用到的时候在实例化
互换的青春
TA贡献1797条经验 获得超6个赞
String fileName = Environment.getExternalStorageDirectory() + "/MyFolder/Images" + fileName + ".jpg"; UriOfPhoto = Uri.parse(fileName); Intent intent = new Intent(Intent.ACTION_VIEW); intent.putExtra(MediaStore.EXTRA_OUTPUT, UriOfPhoto); startActivityForResult(intent, RESULT_CAMERA_SELECT);
不需要创建文件来存储照片,你只需要传递 uri,它里面的照片必须是像android系统创建的文件一样,然后在 uri 中存储捕捉的图像。
添加回答
举报
0/150
提交
取消