废话不多说,直接上代码:
Uri uri = .EXTERNAL_CONTENT_URI;
ContentResolver cr = ();
Cursor cursor = (uri,null,.MIME_TYPE+"=? or "
+.MIME_TYPE+"=?",new String[]{"image/jpeg","image/png"},
.DATE_MODIFIED);
HashSet hashSet = new HashSet();
while (()){
String path = (());
File parentFile = new File(path).getParentFile();
if(parentFile == null){
continue;
}
String dirPath = ();
FolderBean folderBean = null;
if ((dirPath)) {
continue;
}else{
(dirPath);
folderBean = new FolderBean();
(path);
(dirPath);
}
if(() == null){
continue;
}
int picCount = (new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
if((".jpg")
||(".jpeg")
||(".png")
||(".JPG")
||(".JPEG")
||(".PNG"))
return true;
return false;
}
}).length;
(picCount);
(folderBean);
if (picCount>nMaxCount){
nMaxCount = picCount;
mCurrentDir = parentFile;
}
}
();
以上为获取本地Sd卡目录的关键代码,可以获取手机里面所有的图片文件,包括jpg,png,jpeg等图片格式。
扫码到图片后可以通过recyclerView动态的显示出来:
(new MyRecycleViewAdapter(imgs,));
(new GridLayoutManager(,4));
(new DefaultItemAnimator());
class MyRecycleViewAdapter<T> extends <>{
private List<String> imgs;
private Context context;
public MyRecycleViewAdapter(List<String> imgs,Context context) {
= imgs;
= context;
}
@Override
public long getItemId(int position) {
return (position);
}
@NonNull
@Override
public onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = (context).inflate(.recycle_glide_item,parent,false);
holder = new (view) {
@Override
public String toString() {
return ();
}
};
return holder;
}
@Override
public void onBindViewHolder(@NonNull holder, int position) {
View view = ;
final ImageView iv = (.iv_glide_re);
final String url = ()+"/"+(position);
(new () {
@Override
public void onClick(View v) {
// (0.5f);
(("#77000000"));
(url).show(getFragmentManager(),"2222");
}
});
(context).load(url).into(iv);
}
@Override
public int getItemCount() {
return ();
}
}