您的位置:首页 > 移动开发 > Android开发

android系统媒体库开发之图片

2016-01-26 13:50 351 查看
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.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;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: