android系统媒体库开发之图片

来源:互联网 发布:手机屏幕分享软件 编辑:程序博客网 时间:2024/05/22 03:34

Android系统为我们建立起多媒体数据库之后,便把多媒体常用的信息,比如歌曲名、文件大小、播放时长、专辑、歌手等常用信息保存在了数据库里,那我们可以直接用多媒体库中的数据,完成这个需求。虽然我们需要用多媒体库,但是我们不能直接操作。Android为这些常用的需要共享的数据(多媒体和联系人等),创建了ContentProvider,因此,如果我们想获取到这些信息,我们就需要用ContentProvider。

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.jpgtry {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;}}


1 0
原创粉丝点击