如何使用Universal Image Loader加载本地图片
来源:互联网 发布:sql万能钥匙 编辑:程序博客网 时间:2024/05/21 16:22
本篇通过使用UIL(Universal Image Loader)加载本地图片,先上图:
这里使用GridView布局,通过getContentResolver获取手机保存的图片:
/** * 获取本地图片 * * @param context * @return */@SuppressLint("UseSparseArrays")public static HashMap<Integer, Model> getMediaImage(Context context) {HashMap<Integer, Model> datas = new HashMap<Integer, Model>();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 = context.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);Log.v("image", "buckedName = " + buckedName);String filename = imagecursor.getString(dataColumnIndex);try {File file = new File(filename);if (!file.exists()) {continue;}} catch (Exception e) {continue;}Log.v("image", "filename = " + filename);Model galleryModel = new Model("file:/" + imagecursor.getString(dataColumnIndex).toString(), false);// false是为了解决checkbox错乱的问题datas.put(i, galleryModel);}imagecursor.close();return datas;}
适配器:
public class MyListAdapter extends BaseAdapter {private Context context;private HashMap<Integer, Model> datas;private ImageLoader imageLoader;private DisplayImageOptions options;public MyListAdapter(Context context, HashMap<Integer, Model> datas){this.context = context;this.datas = datas;imageLoader = ImageLoader.getInstance();imageLoader.init(ImageLoaderConfiguration.createDefault(context));options = new DisplayImageOptions.Builder().showImageOnLoading(R.drawable.ic_stub).showImageForEmptyUri(R.drawable.ic_empty).showImageOnFail(R.drawable.ic_error).cacheInMemory(true).cacheOnDisk(true).considerExifParams(true).bitmapConfig(Bitmap.Config.RGB_565).build();}@Overridepublic int getCount() {return datas.size();}@Overridepublic Object getItem(int position) {return position;}@Overridepublic long getItemId(int position) {return position;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {View view = convertView;final ViewHolder holder;if(convertView == null){view = LayoutInflater.from(context).inflate(R.layout.listview_item, parent , false);holder = new ViewHolder();holder.image = (ImageView) view.findViewById(R.id.image);holder.chBox = (CheckBox) view.findViewById(R.id.checkBox);view.setTag(holder);} else{holder = (ViewHolder) view.getTag();}holder.chBox.setChecked(datas.get(position).isChecked);imageLoader.displayImage(datas.get(position).url, holder.image, options);return view;}private static class ViewHolder {ImageView image;CheckBox chBox;}}
ListView的item布局文件layout/listview_item:
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#000000" android:paddingRight="8dp" > <ImageView android:id="@+id/image" android:layout_width="80dp" android:layout_height="80dp" android:layout_alignParentLeft="true" android:layout_marginBottom="6dp" android:layout_marginTop="6dp" android:background="@drawable/ic_empty" android:gravity="center_vertical" android:scaleType="centerCrop" /> <CheckBox android:id="@+id/checkBox" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_centerVertical="true" android:background="@null" android:button="@drawable/checkbox_selector" android:focusable="false" android:gravity="center_vertical" /></RelativeLayout>
Demo下载地址
0 0
- 如何使用Universal Image Loader加载本地图片
- universal-image-loader如何设置本地图片
- 使用Android-Universal-Image-Loader加载图片
- 使用Universal-Image-Loader加载图片
- 使用Universal-Image-Loader框架加载图片
- Android 中网络图片加载(包括本地图片的加载) 框架 universal image loader 的简单使用
- Android图片异步加载之Android-Universal-Image-Loader使用
- Universal-Image-Loader 图片异步加载类库的使用
- Android图片异步加载之Android-Universal-Image-Loader使用
- 异步加载图片框架Android-Universal-Image-Loader的使用
- Android-Universal-Image-Loader图片加载框架使用
- 使用Android-Universal-Image-Loader加载网络图片
- 异步加载网络图片之Universal-Image-Loader的使用
- 图片加载框架Android-Universal-Image-Loader使用及解析
- Android-Universal-Image-Loader图片加载框架使用
- 使用universal-image-loader加载圆形图片的方法
- Universal-Image-Loader(UIL)图片加载框架使用简单介绍
- 开源图片加载库universal-image-loader使用
- 如何测试一个搜索框
- Ubuntu rabbitmq安装
- myeclipse debug
- 两分钟彻底让你明白Android Activity生命周期
- Android签名与认证详细分析之一(CERT.RSA剖析)
- 如何使用Universal Image Loader加载本地图片
- 所发生的发大水发松岛枫
- 数据结构4:线性表中的10个扩展函数
- hdu 4949 Light 插头dp
- Linux如何及时响应外部中断
- freopen()函数文件流重定向和文件流的清除
- Android签名与认证详细分析之二(CERT.RSA剖析)
- CSDN采访陶辉的关于开发Nginx模块的建议
- MFC中三种DLL区别