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

Android加载器加载本地图片

2016-05-04 14:37 453 查看
参数:
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
// ——————————————————------------------加载器的实现方法------------------------------------------
@Overridepublic Loader<Cursor> onCreateLoader(int id, Bundle args) {
return new CursorLoader(this, MediaStore.Images.Media.EXTERNAL_CONTENT_URI, STORE_IMAGES, null, null, null);}@Overridepublic 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])));}
}@Overridepublic void onLoaderReset(Loader<Cursor> loader) {simpleCursorAdapter.swapCursor(null);}private class ImageLoaderBinder implements SimpleCursorAdapter.ViewBinder {@Overridepublic boolean setViewValue(View view, Cursor cursor, int columnIndex) {
// 如果要使用系统默认的设置方法,直接return false;如果自定义设置View,需要return true。return false;}}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android