android系统媒体库开发之图片
2016-01-26 13:50
351 查看
Android系统为我们建立起多媒体数据库之后,便把多媒体常用的信息,比如歌曲名、文件大小、播放时长、专辑、歌手等常用信息保存在了数据库里,那我们可以直接用多媒体库中的数据,完成这个需求。虽然我们需要用多媒体库,但是我们不能直接操作。Android为这些常用的需要共享的数据(多媒体和联系人等),创建了ContentProvider,因此,如果我们想获取到这些信息,我们就需要用ContentProvider。
bean:
bean:
public class Pic extends FtpBaseBean{ public String locPath = null; public boolean isChecked = false; private String remotePath = "/pic/"; public Pic(String locPath, boolean status) { this.locPath = locPath; this.isChecked = status; } public boolean isChecked() { return isChecked; } public void setIsChecked(boolean isChecked) { this.isChecked = isChecked; } public String getFileName() { return fileName; } public void setFileName(String fileName) { this.fileName = fileName; } public String getRemotePath() { return remotePath; } public void setRemotePath(String remotePath) { this.remotePath = remotePath; } public String getLocPath() { return locPath; } public void setLocPath(String locPath) { this.locPath = locPath; } public int getState() { return state; } public void setState(int state) { this.state = state; } public long getProgress() { return progress; } public void setProgress(long progress) { this.progress = progress; } public long getMax() { return max; } public void setMax(long max) { this.max = max; } }util:
public class ImageUtil { /** * 获取本地图片 * @return */ @SuppressLint("UseSparseArrays") public static ArrayList<Pic> getMediaImage() { ArrayList<Pic> datas = new ArrayList<Pic>(); final String orderBy = MediaStore.Images.Media.DATE_TAKEN; final String[] columns = { MediaStore.Images.Media.DATA, MediaStore.Images.Media._ID, MediaStore.Images.Media.BUCKET_DISPLAY_NAME }; Cursor imagecursor = UIUtils.getContext().getContentResolver().query( MediaStore.Images.Media.EXTERNAL_CONTENT_URI, columns, null, null, orderBy + " DESC"); for (int i = 0; i < imagecursor.getCount(); i++) { imagecursor.moveToPosition(i); int dataColumnIndex = imagecursor .getColumnIndex(MediaStore.Images.Media.DATA); int dirColumnIndex = imagecursor .getColumnIndex(MediaStore.Images.Media.BUCKET_DISPLAY_NAME); String buckedName = imagecursor.getString(dirColumnIndex);//父目录名 String filename = imagecursor.getString(dataColumnIndex);//路径名 /storage/emulated/0/GoStore/download/Picture/10128132.jpg try { File file = new File(filename); if (!file.exists()) { continue; } } catch (Exception e) { continue; } Pic galleryModel = new Pic("file:/" + imagecursor.getString(dataColumnIndex), false);//这里加上了"file:/",是urlimageloader加载本地图片的前缀 datas.add(galleryModel); } imagecursor.close(); return datas; } }
相关文章推荐
- Android 从相册中选择照片
- Android 调用摄像头拍照
- android将文字复制到剪贴板
- root技术背后android手机内核提取及逆向分析
- 关于Android Studio里的Gradle,你所需要知道的都在这里了
- Android常用加密代码实现
- Android AIDL SERVICE 双向通信 详解
- Android中 overridePendTransition函数的使用方法
- 王学岗Viewpager(一)
- 快速简单的定制一个时间轴布局(LinearLayout)
- android怪招之开机自启动
- Android-Cannot merge new index 66195 into a non-jumbo instruction的解决办法
- Android应用自动更新功能的代码实现
- Android中使用抖动动画吸引来用户注意
- Android应用安全开发之源码安全
- Android 常见调试工具
- Android下的权限
- Android 开发规范总结
- Android实现定时执行某个任务
- 优化 Android 线程和后台任务开发