一、 图片存储在SDCARD中,用ImageView来进行显示,
用setImageUri(),但却显示不出来,
改用setImageBitmap来进行显示:
ImageView iv = (ImageView) findViewById(R.id.image_test);
Bitmap bit = BitmapFactory.decodeFile("/sdcard/dcd/images/xinwen.gif");
iv.setImageBitmap(bit);
二、 显示它的缩略图。
android真给力啊,2.2后就给我封装了成一个压缩的类------ ThumbnailUtils
主要有三个方法可以调用:
1、extractThumbnail (source, width, height):
/**
*
* 创建一个指定大小的缩略图
* @param source 源文件(Bitmap类型)
* @param width 压缩成的宽度
* @param height 压缩成的高度
*/
ThumbnailUtils.extractThumbnail(source, width, height);
2、extractThumbnail(source, width, height, options):
/**
* 创建一个指定大小居中的缩略图
*
* @param source 源文件(Bitmap类型)
* @param width 输出缩略图的宽度
* @param height 输出缩略图的高度
* @param options 如果options定义为OPTIONS_RECYCLE_INPUT,则回收
*
*/
ThumbnailUtils.extractThumbnail(source, width, height, options);
3、createVideoThumbnail(filePath, kind):
/**
* 创建一张视频的缩略图
* 如果视频已损坏或者格式不支持可能返回null
*
* @param filePath 视频文件路径 如:/sdcard/android.3gp
* @param kind kind可以为MINI_KIND或MICRO_KIND
*
*/
ThumbnailUtils.createVideoThumbnail(filePath, kind);
三、具体使用例子。
/**
* 根据指定的图像路径和大小来获取缩略图
* 此方法有两点好处:
* 1. 使用较小的内存空间,第一次获取的bitmap实际上为null,只是为了读取宽度和高度,
* 第二次读取的bitmap是根据比例压缩过的图像,第三次读取的bitmap是所要的缩略图。
* 2. 缩略图对于原图像来讲没有拉伸,这里使用了2.2版本的新工具ThumbnailUtils,使
* 用这个工具生成的图像不会被拉伸。
* @param imagePath 图像的路径
* @param width 指定输出图像的宽度
* @param height 指定输出图像的高度
* @return 生成的缩略图
*/
private Bitmap getImageThumbnail(String imagePath, int width, int height) {
Bitmap bitmap = null;
BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
// 获取这个图片的宽和高,注意此处的bitmap为null
bitmap = BitmapFactory.decodeFile(imagePath, options);
options.inJustDecodeBounds = false; // 设为 false
// 计算缩放比
int h = options.outHeight;
int w = options.outWidth;
int beWidth = w / width;
int beHeight = h / height;
int be = 1;
if (beWidth < beHeight) {
be = beWidth;
} else {
be = beHeight;
}
if (be <= 0) {
be = 1;
}
options.inSampleSize = be;
// 重新读入图片,读取缩放后的bitmap,注意这次要把options.inJustDecodeBounds 设为 false
bitmap = BitmapFactory.decodeFile(imagePath, options);
// 利用ThumbnailUtils来创建缩略图,这里要指定要缩放哪个Bitmap对象
bitmap = ThumbnailUtils.extractThumbnail(bitmap, width, height,
ThumbnailUtils.OPTIONS_RECYCLE_INPUT);
return bitmap;
}