要在图库中显示图像,您需要添加 ContentValues,在示例中: https ://github.com/googlesamples/android-Camera2Basic
找到了 ImageReader.OnImageAvailableListener。这是我的代码:
private final ImageReader.OnImageAvailableListener mOnImageAvailableListener = new ImageReader.OnImageAvailableListener() {
@Override
public void onImageAvailable(ImageReader reader) {
// First I get the path to gallery and crate new Album to my app
String pathD = Environment.getExternalStorageDirectory() + "/" + Environment.DIRECTORY_DCIM + "/";
File mediaStorageDir = new File(pathD, "MyAlbum");
if (!mediaStorageDir.exists()) {
if (!mediaStorageDir.mkdirs()) {
Log.d("MyCameraApp", "failed to create directory");
}
}
/*Second I cut mFile = new File(getActivity().getExternalFilesDir(null), "pic.jpg");
from onActivityCreated and add here with the new path from my Album*/
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.getDefault()).format(new Date());
mFile = new File(mediaStorageDir,"ImageName"+"_"+ timeStamp+".jpeg");
//Then the contentValues
ContentValues values = new ContentValues();
values.put(MediaStore.Images.Media.TITLE, "ImageName");
values.put(MediaStore.Images.Media.DATE_TAKEN, System.currentTimeMillis());
values.put(MediaStore.Images.Media.ORIENTATION, ORIENTATIONS.get(rotation));
values.put(MediaStore.Images.Media.CONTENT_TYPE,"image/jpeg");
values.put("_data", mFile.getAbsolutePath());
ContentResolver cr = getActivity().getContentResolver();
cr.insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
//This line is already in the code
mBackgroundHandler.post(new ImageSaver(reader.acquireNextImage(), mFile));
}
};