1.利用Glide--ok
Glide.with(MeDynamicAddActivity.this)
.load(framePicPath)
.error(R.drawable.jc_play_normal)
.override(80, 100)
.centerCrop()
.into(imageviewvideo);
2.imageloader ,只是显示,没有设定宽高
imageLoader.displayImage(framePicPath,imageviewvideo,options);
3.利用方法 getLocalBitmap获取bitmap对象,但是不能设置宽高
/**
* 加载本地图片 http://bbs.3gstdy.com
* @param url
* @return
*/
public static Bitmap getLoacalBitmap(String url) {
FileInputStream fis = null;
try {
BitmapFactory.Options opt = new BitmapFactory.Options();
opt.inPreferredConfig = Bitmap.Config.RGB_565;
opt.inPurgeable = true;
opt.inInputShareable = true;
fis = new FileInputStream(url);
return BitmapFactory.decodeStream(fis, null, opt);
} catch (FileNotFoundException e) {
e.printStackTrace();
return null;
} finally {
if (fis != null) {
try {
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
4.getImageThubnail,获取需要的宽高的bitmap对象
Bitmap bitmap = null;
if (framePicPath!=null && !framePicPath.equals("")) {
bitmap = Tools.getImageThumbnail(framePicPath,80,80); // 从本地取图片
}
if (bitmap != null) {
imageviewvideo.setImageBitmap(bitmap);
} else {
imageviewvideo.setBackgroundResource(R.drawable.head_img);
}
getImageThubnail方法:
/**
* 根据指定的图像路径和大小来获取缩略图
* 此方法有两点好处:
* 1. 使用较小的内存空间,第一次获取的bitmap实际上为null,只是为了读取宽度和高度,
* 第二次读取的bitmap是根据比例压缩过的图像,第三次读取的bitmap是所要的缩略图。
* 2. 缩略图对于原图像来讲没有拉伸,这里使用了2.2版本的新工具ThumbnailUtils,使
* 用这个工具生成的图像不会被拉伸。
* @param imagePath 图像的路径
* @param width 指定输出图像的宽度
* @param height 指定输出图像的高度
* @return 生成的缩略图
*/
public static 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;
}
5.
@Override
public Object instantiateItem(ViewGroup container, final int position) {
WeakReference<PhotoView> photoView = new WeakReference<PhotoView>(new PhotoView(container.getContext()));
//本地展示图片
if(photoView!=null){
File file = new File(images.get(position));
Uri imageUri2 = Uri.fromFile(file);
if (imageUri2 != null) {
Bitmap bitmapUri = Tools.decodeUriAsBitmap(imageUri2,BigLocalImgActivity.this);
photoView.get().setImageBitmap(bitmapUri);
}else{
photoView.get().setBackgroundResource(com.dmcbig.mediapicker.R.drawable.mis_default_error);
}
}
container.addView(photoView.get(), ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
photoView.get().setOnViewTapListener(new ViewTapListener());
return photoView.get();
}