根据本地图片路劲,显示规定宽高bitmap对象到ImageView

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



猜你喜欢

转载自blog.csdn.net/fangjingjingll/article/details/79710594