SmartImageView 是一个开源的 Android 图像视图,支持从 URL 和通讯录中获取图像,可以替代标准的 ImageView。
特征:
● 根据 URL 地址装载图像
●支持装载通讯录中的图像
●支持异步装载
●支持缓存
使用:
首先,下载作者的 jar 包导入项目的/libs/目录下
其次,在项目的 xml 文件中加入控件
<com.loopj.android.image.SmartImageView
Android:id=”+@id/your_image_id “ />
再次,在代码里找到该控件
SmartImageView yourImage=(SmartImageView)findViewById(R.id.your_image_id);
最后,使用控件:
通过 URL 加载图片:yourImage.setImageUrl(“http://www. ××××.com/××××.jpg”);
加载通讯录的图片:yourImage.setImageContact(contactAddressBookId);
注:获取联系人头像,也就是要访问系统通讯录这个 app 的数据,因此需要在 AndroidManifest.xml 文件中
加入权限声明:
<uses-permission android:name=”android.permission.READ_CONTACTS” />
几点说明:
1 从 URL 获得图片:
这里的指定 URL 通常指的是图片的外链,格式类似 :
http://farm6.staticflickr.com/5489/9272288811_286d003d9e_o.png
这个比较简单,直接输入 URL 地址,就可以获得图片了 yourImage.setImageUrl(“http://www. ××××.com/××××.jpg”);
如何从 URL 中获得图片的位图呢:简单的使用 URLConnection 的 getContent 方法就可以获取图片的数据,之
后利用 BitmapFactory 将其转换为 Bitmap 就可以了 。 代码实现如下:
private Bitmap getBitmapFromUrl(String url) {
Bitmap bitmap = null;
try {
URLConnection conn = new URL(url).openConnection();
conn.setConnectTimeout(30000);
conn.setReadTimeout(30000);
bitmap = BitmapFactory.decodeStream((InputStream) conn.getContent());
} catch(Exception e) {
e.printStackTrace();
}
return bitmap;
}