我需要打开图库来选择我的android应用程序中的图像。这是我的代码,它工作得很好。
但是通过使用PHOTOLIBRARY,它将从设备的照片库中打开图像,而通过使用SAVEDPHOTOALBUM将只从设备的Camera Roll相册中选择图像-正如我可以在这里阅读https://cordova.apache.org/docs/en/latest/reference/cordova-plugin-camera/
我想打开我的应用程序特定的文件夹,而不是画廊文件夹(例如:我创建了一个名为'MYAPPIMAGES‘的文件夹,其中包含来自我的应用程序的图像,我只想显示'MYAPPIMAGES’文件夹中的图像,而不是画廊中的所有图像)。我怎样才能实现这个行为呢?有没有这样做的机会?提前谢谢。
var picOptions = {
destinationType: navigator.camera.DestinationType.FILE_URI,
quality: 80,
targetWidth: 800,
targetHeight: 800,
maximumImagesCount: 5,
sourceType: navigator.camera.PictureSourceType.PHOTOLIBRARY
};
$cordovaImagePicker.getPictures(picOptions).then(function (imageURI) {
for (var i = 0; i < imageURI.length; i++) {
var str = imageURI[i];
var n = str.lastIndexOf('/');
var splitStr = str.substring(n+1);
var dir = str.substring(0,n+1);
console.log(imageURI[i]+' '+splitStr+' '+dir);
convert64(imageURI[i], splitStr, dir);
}发布于 2017-01-31 18:27:57
该选项中允许的唯一值是:
Camera.PictureSourceType :枚举定义了Camera.getPicture调用的输出格式。注意:在iOS上,传递PictureSourceType.PHOTOLIBRARY或PictureSourceType.SAVEDPHOTOALBUM以及DestinationType.NATIVE_URI将禁用任何图像修改(调整大小、质量更改、裁剪等)。由于具体实现的原因。
Kind:相机属性的静态枚举属性
Name Type Default Description
PHOTOLIBRARY number 0 Choose image from the device's photo library (same as SAVEDPHOTOALBUM for Android)
CAMERA number 1 Take picture from camera
SAVEDPHOTOALBUM number 2 Choose image only from the device's Camera Roll album (same as PHOTOLIBRARY for Android)发布于 2020-04-20 14:35:49
这也将解决你的问题,如果你的图片在画廊中没有显示,他们可能会在中间显示一个404类型的位图。请添加我的代码中的所有标签与您的图像,因为必须有一些元数据,以便在画廊中显示图像。注意:此标签适用于Android 9及更低版本,Android Q可以使用此标签,将您的img存放在图库values.put(MediaStore.Images.Media.RELATIVE_PATH,中的特定文件夹( "yourfoldernaeme");
String resultPath = getExternalFilesDir(Environment.DIRECTORY_PICTURES)+
getString(R.string.directory) + System.currentTimeMillis() + ".jpg";
new File(resultPath).getParentFile().mkdir();
try {
OutputStream fileOutputStream = new FileOutputStream(resultPath);
savedBitmap.compress(CompressFormat.JPEG, 100, fileOutputStream);
fileOutputStream.flush();
fileOutputStream.close();
} catch (IOException e2) {
e2.printStackTrace();
}
savedBitmap.recycle();
File file = new File(resultPath);
ContentValues values = new ContentValues();
values.put(MediaStore.Images.Media.TITLE, "Photo");
values.put(MediaStore.Images.Media.DESCRIPTION, "Edited");
values.put(MediaStore.Images.Media.MIME_TYPE, "image/jpeg");
values.put(MediaStore.Images.Media.DATE_TAKEN, System.currentTimeMillis ());
values.put(MediaStore.Images.Media.DATE_ADDED, System.currentTimeMillis());
values.put(MediaStore.Images.ImageColumns.BUCKET_ID, file.toString().toLowerCase(Locale.US).hashCode());
values.put(MediaStore.Images.ImageColumns.BUCKET_DISPLAY_NAME, file.getName().toLowerCase(Locale.US));
values.put("_data", resultPath);
ContentResolver cr = getContentResolver();
cr.insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
return resultPath;https://stackoverflow.com/questions/41952939
复制相似问题