我使用TedBottomPicker库进行图像选择。这是链接:https://android-arsenal.com/details/1/4320。我需要从图库文件夹的每个文件夹中选择图像(在此库的源代码中完成)。我已下载代码并在第446行编辑了TedBottomPicker.java(DIRECTORY_PICTURES到DIRECTORY_DOCUMENTS)。当我启动应用程序时工作正常,它从每个文件夹中选择图像,如相机,WhatsApp等。
现在的问题是,一旦我将这个库作为模块导入我的项目并在其源代码中将DIRECTORY_PICTURES更改为DIRECTORY_DOCUMENTS,它仍然只显示来自Pictures文件夹的图像。我按照此链接导入我的库:Android studio - add library from github 告诉我为什么我在java文件中应用的更改不会在我的android项目中显示。在此先感谢以下是外部库方法的代码:
private File getImageFile() {
// Create an image file name
File imageFile = null;
try {
String timeStamp = new SimpleDateFormat("yyyyMMddHHmmss", Locale.getDefault()).format(new Date());
String imageFileName = "JPEG_" + timeStamp + "_";
File storageDir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);
if (!storageDir.exists())
storageDir.mkdirs();
imageFile = File.createTempFile(
imageFileName, /* prefix */
".jpg", /* suffix */
storageDir /* directory */
);
// Save a file: path for use with ACTION_VIEW intents
cameraImageUri = Uri.fromFile(imageFile);
} catch (IOException e) {
e.printStackTrace();
errorMessage("Could not create imageFile for camera");
}
return imageFile;
}
我在我的活动中使用了这段代码:
`
if(tempImageList.size()>0){
//Loading with previous selection
bottomSheetDialogFragment = new TedBottomPicker.Builder(MessagesActivity.this)
.setOnMultiImageSelectedListener(new TedBottomPicker.OnMultiImageSelectedListener() {
@Override
public void onImagesSelected(ArrayList<Uri> uriList) {
tempImageList = uriList;
for (int i = 0; i < tempImageList.size(); i++) {
Uri uri=tempImageList.get(i); //setting selected images in my variable
System.out.print("myUri"+ uri);
}
}
})
.setPeekHeight(1000)
.showTitle(false)
.setCompleteButtonText("Done")
.setEmptySelectionText("No Select")
.setSelectedUriList(tempImageList)
.create();
bottomSheetDialogFragment.show(getSupportFragmentManager());
} else {
//Loading New
bottomSheetDialogFragment = new TedBottomPicker.Builder(MessagesActivity.this)
.setOnMultiImageSelectedListener(new TedBottomPicker.OnMultiImageSelectedListener() {
@Override
public void onImagesSelected(ArrayList<Uri> uriList) {
tempImageList=uriList;
}
})
.setPeekHeight(1000)
.showTitle(false)
.setCompleteButtonText("Done")
.setEmptySelectionText("No Select")
.create();
bottomSheetDialogFragment.show(getSupportFragmentManager());
}