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(); }