我的应用程序允许用户在画廊中立即拍摄照片(外部存储空间中的所有照片)。 但是,我无法在画廊中查看我新拍摄的照片。我确定拍摄的照片,因为我可以在文件管理器中查看。路径是正确的。为什么我的应用程序无法识别刚拍摄的照片。我错过了什么?
权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.CAMERA" />
代码
@Override
public void onClick(View v) { // the listener
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
File photoFile = null;
try {
photoFile = createImageFile();
} catch (IOException e) {
e.printStackTrace();
}
if(photoFile != null) {
Uri uri = Uri.fromFile(photoFile);
ImageSelectionActivity.photoUri = uri;
intent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
((Activity)context).startActivityForResult(intent, TAKE_PIC_REQUEST);
}
}
private File createImageFile() throws IOException {
// Create an image file name
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
String imageFileName = "IMG_" + timeStamp + "_";
String dir = Environment.getExternalStorageDirectory() + "/DCIM/MyApp";
File storageDir = new File(dir);
if(!storageDir.exists()) {
storageDir.mkdir();
}
File image = File.createTempFile(imageFileName, ".jpg", storageDir);
return image;
}
// The CursorLoader
@Override
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
// Get relevant columns for use later.
String[] projection = {
MediaStore.Files.FileColumns._ID,
MediaStore.Images.Media.DATE_ADDED,
MediaStore.Images.Media.TITLE,
MediaStore.Images.Media.DATA
};
Uri queryUri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
CursorLoader cursorLoader = new CursorLoader(
this,
queryUri,
projection,
null,
null, // Selection args (none).
MediaStore.Images.Media.DATE_ADDED + " DESC" // Sort order.
);
return cursorLoader;
}
答案 0 :(得分:0)
我会在同一个Activity中输入ImageView / TextView(占位符)使用这个函数。
@Override
protected void onActivityResult (int requestCode, int resultCode,
Intent data) {
if (requestCode == RESULT_OK) {
Bitmap photo = (Bitmap)data.getExtras().get("data");
((ImageView) findViewById(R.id.imagsView)).setImageBitmap(photo);
}
}
这带来了更多,然后查看,日志。因为你可以通过更多的数据。 你可以看到/ regonizeo,如果每个代码都正确到ImageView / TextView。 在ImageView / Textview上,您可以使用“测试方法”来保存数据,并使用从TextView中使用的最终信息。 StackOverflow的一些想法,我也会帮忙。也许有人写,很好理解,回答你的问题。