android本地手机图片Glide加载

时间:2025-01-27 11:43:03

废话不多说,直接上代码:

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 ();
        }
    }