使用xutils和imageloader实现圆形图片加载
"xutils+imageloader+圆图" 这篇内容涉及到的是在Android开发中如何使用xUtils和Universal Image Loader库来实现图片加载,并且特别提到了如何将加载的图片转换为圆形显示。xUtils是一个全能的Android开发工具包,包含网络、文件、数据库、图片等多个模块,而Universal Image Loader则是一个强大的图片加载库,提供了丰富的图片缓存和加载策略。 首先,我们来看xUtils中的BitmapUtils。这个工具类是用来处理Bitmap的,包括加载、显示和缓存图片。在代码中,我们可以看到`BitmapUtils`的使用,它提供了`loadBitmap`方法来加载网络或者本地的图片。`BitmapLoadCallBack`是一个回调接口,用于在图片加载完成或失败时进行相应的处理。`BitmapLoadFrom`枚举类型用于指定图片的来源,如内存、磁盘或网络。 接着,为了实现图片的圆形化显示,我们可以看到一些自定义图形绘制的方法。`@SuppressLint("NewApi")`注解用于抑制API级别的警告,`Canvas`和`Paint`对象是Android图形绘制的基础,它们可以用来在屏幕上画出图像和文本。`PorterDuff.Mode.CLEAR`和`PorterDuffXfermode`则是Android中用于混合颜色和模式的工具,这里可能用于清除背景并创建圆形效果。 `Bitmap.Config`是Bitmap的配置类型,可以设置位图的颜色空间和透明度等属性。`RectF`和`Rect`用于处理矩形区域,这里可能用于裁剪出圆形的图像。`Bitmap.createBitmap`和`Bitmap.createBitmap`方法用于创建新的Bitmap对象,这通常是在自定义圆形图片时需要的。 然后,`ImageView`的设置也很关键,通过设置其`Drawable`,我们可以将圆形的Bitmap显示在界面上。`BitmapDrawable`是从Bitmap创建的Drawable对象,可以直接设置到ImageView上。 此外,`UnlimitedDiscCache`是Universal Image Loader库的一部分,用于在磁盘上无限存储缓存的图片。这提高了图片加载的效率,避免了频繁的网络请求。`com.nostra13.universalimageloader`包下的其他类和接口也是Universal Image Loader的核心组件,它们负责图片的加载、缓存策略以及错误处理等。 这段代码展示了如何结合xUtils和Universal Image Loader来加载图片,并利用Android的图形绘制技术将其转换为圆形显示。这在个人资料页或者其他需要显示用户头像的场景中非常常见,可以提供良好的用户体验。
import android.annotation.SuppressLint;
import android.app.ProgressDialog;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Bitmap.Config;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.PorterDuff.Mode;
import android.graphics.PorterDuffXfermode;
import android.graphics.Rect;
import android.graphics.RectF;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.view.View;
import android.widget.ImageView;
import com.bscy.YoYo.R;
import com.bscy.YoYo.R.drawable;
import com.bscy.YoYo.activity.EditPersonalInfoActivity;
import com.lidroid.xutils.BitmapUtils;
import com.lidroid.xutils.bitmap.BitmapDisplayConfig;
import com.lidroid.xutils.bitmap.callback.BitmapLoadCallBack;
import com.lidroid.xutils.bitmap.callback.BitmapLoadFrom;
import com.nostra13.universalimageloader.cache.disc.impl.UnlimitedDiscCache;
import com.nostra13.universalimageloader.cache.disc.naming.HashCodeFileNameGenerator;
import com.nostra13.universalimageloader.cache.memory.impl.LruMemoryCache;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.DisplayImageOptions.Builder;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
import com.nostra13.universalimageloader.core.assist.FailReason;
import com.nostra13.universalimageloader.core.assist.ImageScaleType;
import com.nostra13.universalimageloader.core.assist.QueueProcessingType;
import com.nostra13.universalimageloader.core.decode.BaseImageDecoder;
import com.nostra13.universalimageloader.core.display.FadeInBitmapDisplayer;
import com.nostra13.universalimageloader.core.display.RoundedBitmapDisplayer;
import com.nostra13.universalimageloader.core.download.BaseImageDownloader;
import com.nostra13.universalimageloader.core.listener.ImageLoadingListener;
import com.nostra13.universalimageloader.core.listener.SimpleImageLoadingListener;
import com.nostra13.universalimageloader.utils.StorageUtils;
import com.novoda.imageloader.core.bitmap.BitmapUtil;
import java.io.File;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
/**
* 获取网络图片的帮助类
*/
public class ImageLoaderUitl {
// Acceptable URIs example
// "http://site.com/image.png" // from Web
// "file:///mnt/sdcard/image.png" // from SD card
// "file:///mnt/sdcard/video.mp4" // from SD card (video thumbnail)
// "content://media/external/images/media/13" // from content provider
// "content://media/external/video/media/13" // from content provider (video
剩余11页未读,继续阅读
- 粉丝: 0
- 资源: 5
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- C++标准程序库:权威指南
- Java解惑:奇数判断误区与改进方法
- C++编程必读:20种设计模式详解与实战
- LM3S8962微控制器数据手册
- 51单片机C语言实战教程:从入门到精通
- Spring3.0权威指南:JavaEE6实战
- Win32多线程程序设计详解
- Lucene2.9.1开发全攻略:从环境配置到索引创建
- 内存虚拟硬盘技术:提升电脑速度的秘密武器
- Java操作数据库:保存与显示图片到数据库及页面
- ISO14001:2004环境管理体系要求详解
- ShopExV4.8二次开发详解
- 企业形象与产品推广一站式网站建设技术方案揭秘
- Shopex二次开发:触发器与控制器重定向技术详解
- FPGA开发实战指南:创新设计与进阶技巧
- ShopExV4.8二次开发入门:解决升级问题与功能扩展