Android加载器加载本地图片

来源:互联网 发布:java垃圾回收方法 编辑:程序博客网 时间:2024/05/27 20:31
参数:
MediaStore.Images.Media.BUCKET_ID, // 直接包含该图片文件的文件夹ID,防止在不同下的文件夹重名

MediaStore.Images.Media.BUCKET_DISPLAY_NAME, // 直接包含该图片文件的文件夹名

MediaStore.Images.Media.DISPLAY_NAME, // 图片文件名

MediaStore.Images.Media.DATA, // 图片绝对路径
private static final String[] STORE_IMAGES = {
MediaStore.Images.Media.DISPLAY_NAME,
MediaStore.Images.Media.DATA,
MediaStore.Images.Media.BUCKET_DISPLAY_NAME,
MediaStore.Images.Media._ID,
}; // 定义要查询的图片信息
simpleCursorAdapter = new SimpleCursorAdapter(this, android.R.layout.simple_list_item_2, null, STORE_IMAGES, new int[]{android.R.id.text1, android.R.id.text2}, 0); // 设置ListView的Adapter(系统的也可自定义)
getSupportLoaderManager().initLoader(0, null, this);  // 初始化加载器
simpleCursorAdapter.setViewBinder(new ImageLoaderBinder()); // Adapter绑定视图
lv_main.setAdapter(simpleCursorAdapter); // ListView绑定Adapter
// ——————————————————------------------加载器的实现方法------------------------------------------
@Override
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
return new CursorLoader(this, MediaStore.Images.Media.EXTERNAL_CONTENT_URI, STORE_IMAGES, null, null, null);
}

@Override
public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
simpleCursorAdapter.swapCursor(data);
while (data.moveToNext()) {
Log.e("TAG0", data.getString(data.getColumnIndex(STORE_IMAGES[0])));
Log.e("TAG1", data.getString(data.getColumnIndex(STORE_IMAGES[1])));
Log.e("TAG2", data.getString(data.getColumnIndex(STORE_IMAGES[2])));
Log.e("TAG3", data.getString(data.getColumnIndex(STORE_IMAGES[3])));
}
}

@Override
public void onLoaderReset(Loader<Cursor> loader) {
simpleCursorAdapter.swapCursor(null);
}

private class ImageLoaderBinder implements SimpleCursorAdapter.ViewBinder {

@Override
public boolean setViewValue(View view, Cursor cursor, int columnIndex) {
// 如果要使用系统默认的设置方法,直接return false;如果自定义设置View,需要return true。
return false;
}
}
0 0
原创粉丝点击