J'utilise la bibliothèque pour choisir des photos dans Gallery.Deux chemins d'image retournés dans onActivityResult sont fusionnés en un résultant en java.io.FileNotFoundException
Voici le code:
tapToUploadLabel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
ImagePicker.create(MainActivity.this)
.returnAfterFirst(false) // set whether pick or camera action should return immediate result or not. For pick image only work on single mode
.imageTitle("Tap to select") // image selection title
.single() // single mode
.multi() // multi mode (default mode)
.limit(3) // max images can be selected (99 by default)
.showCamera(true) // show camera or not (true by default)
.imageDirectory("Camera") // directory name for captured image ("Camera" folder by default)
.enableLog(false) // disabling log
.start(REQUEST_CODE_PICKER); // start image picker activity with request code
}
});
est ici onActivtyResult()
:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_CODE_PICKER && resultCode == RESULT_OK && data != null) {
ArrayList<Image> images = (ArrayList<Image>) ImagePicker.getImages(data);
printImages(images);
mViewPager.setAdapter(mCustomPagerAdapter);
}
}
est ici printImages()
:
private void printImages(List<Image> images) {
if (images == null) return;
if (imageArray.size() >= 1) {
imageArray.clear();
}
StringBuilder stringBuffer = new StringBuilder();
for (int i = 0, l = images.size(); i < l; i++) {
stringBuffer.append(images.get(i).getPath()).append("\n");
imageArray.add(Uri.parse(stringBuffer.toString().trim()));
}
}
Maintenant, j'utilise ce imageArray
pour définir l'image dans ImageView
comme celui-ci :
ImageView imageView = (ImageView) itemView.findViewById(R.id.imageView);
Log.d("imageArrayContains", imageArray.get(position).toString());
imageView.setImageURI(imageArray.get(position));
Le problème est que lorsque je choisis seulement 1 image, il se prépare dans le ImageView sans aucune erreur, mais quand je choisir 2 ou plus d'images, j'obtiens cette erreur:
E/BitmapFactory: Unable to decode stream: java.io.FileNotFoundException: /storage/emulated/0/Pictures/Kwote/1506843168441.jpg
/storage/emulated/0/Pictures/Camera/IMG_20171001_035028145702152.jpg: open failed: ENOENT (No such file or directory)
parce que 2 sont se chemins de fichiers fusionnés en un seul comme celui-ci ici: /storage/emulated/0/Pictures/Kwote/1506843168441.jpg /storage/emulated/0/Pictures/Camera/IMG_20171001_035028145702152.jpg
Je suis incapable de comprendre comment puis-je empêcher que cela se fusionner pour que je puisse obtenir toutes les images choisies chargées dans mon ImageView .
Aidez-nous s'il vous plaît.