频道栏目
首页 > 程序开发 > 移动开发 > Android > 正文
Android 从相册获取最近拍摄的多张照片(获取相机拍照所存储的照片)
2014-10-10 10:52:46           
收藏   我要投稿

 

在做公司项目时,遇到的需求:自定义显示照片的网格视图,显示用户最近采用相机拍摄的前20张照片。

我查看了系统提供的API,没找到直接指向采用照相机拍照后存储照片的路径常量,若有网友知道,请告之,谢谢!

下面是我采用的笨办法,主要代码片段如下:

 

        // 获取SDcard卡的路径
        String sdcardPath = Environment.getExternalStorageDirectory().toString();

        ContentResolver mContentResolver = MainActivity.this.getContentResolver();
        Cursor mCursor = mContentResolver.query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, 
                new String[]{MediaStore.Images.Media._ID, MediaStore.Images.Media.DATA}, 
                MediaStore.Images.Media.MIME_TYPE + =? OR  + MediaStore.Images.Media.MIME_TYPE + =?, 
                new String[] { image/jpeg, image/png }, MediaStore.Images.Media._ID +  DESC); // 按图片ID降序排列

        while (mCursor.moveToNext()) {
            // 打印LOG查看照片ID的值
            long id = mCursor.getLong(mCursor.getColumnIndex(MediaStore.Images.Media._ID));
            Log.i(MediaStore.Images.Media_ID=, id + );
            
            // 过滤掉不需要的图片,只获取拍照后存储照片的相册里的图片
            String path = mCursor.getString(mCursor.getColumnIndex(MediaStore.Images.Media.DATA));
            if (path.startsWith(sdcardPath + /DCIM/100MEDIA) || path.startsWith(sdcardPath + /DCIM/Camera/)
                    || path.startsWith(sdcardPath + DCIM/100Andro)) {
                Log.i(image path=, path);
                img_path.add(file:// + path);
            }
        }
        mCursor.close();


 

点击复制链接 与好友分享!回本站首页
上一篇:Android Touch事件传递机制解析
下一篇:Android开发之触摸事件处理机制详解
相关文章
图文推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站