package com.example.administrator.filemanager.utils;

import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.BitmapFactory.Options;

/**
 * Created by Administrator on 2016/12/30.
 */

public class BitmapUtil {

    /**
     * 图片路径为字符串格式时
     */
    public static Bitmap loadBitmap(String pathName,SizeMessage sizeMessage){
        //获取图片大小
        int imgWeight=sizeMessage.getWidth();
        int imgHeight=sizeMessage.getHeight();
        Context context=sizeMessage.getContext();
        //图像处理
       Options options=new Options();
        options.inJustDecodeBounds=true;//打开图片边缘
        BitmapFactory.decodeFile(pathName,options);
        int imgW = options.outWidth;//处理后拿到的宽
        int imgH = options.outHeight;//处理后拿到的高
        if (imgW <= imgWeight && imgH<=imgHeight){
            //设置加载图片时的比例
            options.inSampleSize = 1;
        }else{
            //按比例计算宽高
            int scaleW = imgW/imgWeight;
            int scaleH = imgH/imgHeight;
            //比较大小
            int scale = scaleW > scaleH ? scaleW:scaleH;
            //按比例加载资源
            options.inSampleSize = scale;
        }
        options.inJustDecodeBounds = false;//关闭图片边缘
        Bitmap bitmap = BitmapFactory.decodeFile(pathName,options);
        return bitmap;
    }
    /**
     * 图片路径为int类型时
     */
    public  static Bitmap loadBitmap(int redId,SizeMessage sizeMessage) {
        //获取图片大小
        int intweight=sizeMessage.getWidth();
        int intheight=sizeMessage.getHeight();
        Context context=sizeMessage.getContext();

        //图像处理
        Options options=new Options();

        options.inJustDecodeBounds = true;//打开图片边缘 拿到信息;
        BitmapFactory.decodeResource(context.getResources(),redId,options);
        int imgW = options.outWidth;//处理后拿到的宽
        int imgH = options.outHeight;//处理后拿到的高

        if (imgW <= intweight && imgH<=intheight){
            //设置加载图片时的比例
            options.inSampleSize = 1;
        }else{
            //按比例计算宽高
            int scaleW = imgW/intweight;
            int scaleH = imgH/intheight;
            //比较大小
            int scale = scaleW > scaleH ? scaleW:scaleH;
            //按比例加载资源
            options.inSampleSize = scale;
        }
        options.inJustDecodeBounds = false;//关闭图片边缘
        Bitmap bitmap = BitmapFactory.decodeResource(context.getResources(),redId,options);
        return bitmap;

    }
    /**
     * 内部类
     */
    public static class SizeMessage{
        private Context context;
        private int width;
        private  int height;

        public Context getContext() {
            return context;
        }

        public void setContext(Context context) {
            this.context = context;
        }

        public int getWidth() {
            return width;
        }

        public void setWidth(int width) {
            this.width = width;
        }

        public int getHeight() {
            return height;
        }

        public void setHeight(int height) {
            this.height = height;
        }

        public SizeMessage(Context context,boolean isPX, int width, int height) {
            this.context = context;
            if(!isPX){//如果不是,转换成像素格式
                width=DeviceUtil.dp2px(context,width);
                height=DeviceUtil.dp2px(context,height);
            }
            this.width = width;
            this.height = height;
        }
    }
}

获取图片工具类:BitmapUtil的更多相关文章

  1. Java图片工具类,完成图片的截取和任意缩放

    package com.common.util; import java.awt.Graphics2D; import java.awt.Image; import java.awt.Renderin ...

  2. 拍照、本地图片工具类(兼容至Android7.0)

    拍照.本地图片工具类:解决了4.4以上剪裁会提示"找不到文件"和6.0动态授予权限,及7.0报FileUriExposedException异常问题. package com.hb ...

  3. Spring获取bean工具类,可用于在线程里面获取bean

    Spring获取bean工具类,可用于在线程里面获取bean import java.util.Locale; import org.springframework.beans.BeansExcept ...

  4. Android--很实用的图片工具类

    import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileNotFoundException; imp ...

  5. Android 调节图片工具类

    package com.base.changeimage; import android.graphics.Bitmap; import android.graphics.Canvas; import ...

  6. 系统获取 IP 工具类

    系统获取 IP 工具类 import java.net.Inet4Address; import java.net.InetAddress; import java.net.NetworkInterf ...

  7. 如何在SpringBoot当中上传多个图片或者上传单个图片 工具类

    如何在SpringBoot当中上传多个图片[上传多个图片 ] 附赠工具类 1.SpringBoot 上传图片工具类 public class SpringUploadUtil { /*** * 上传图 ...

  8. 压缩图片工具类,压缩100KB以内拿走直接用

    最近遇到自拍上传图片过大问题,很烦恼,所以自己写了一个压缩图片的工具类使用,自测效果很不错,可以压缩到KB以内,像素还可以分辨清晰 下面Java代码奉上: import lombok.extern.s ...

  9. Android自定义圆形图片工具类(CTRL+C加CTRL+V直接使用)

    先贴一下工具类的代码!可直接复制粘贴 public class RoundImageView extends ImageView { private Paint mPaint; //画笔 privat ...

随机推荐

  1. Linux5.5安装10g rac

    以前安装总结的,现把它贴出来,虽然10g现在慢慢越少了,但也有不少生产库跑10g的. 1.vi /etc/hosts 10.168.39.243    orcldb1   10.168.39.245  ...

  2. mac 10.9 安装 gevent

    安装步骤: Gevent依赖libevent和greenlet,需要分别安装. 1,安装 macport (如已安装,可以跳过) 2,通过终端 键入: sudo port install libeve ...

  3. 小结一下:javascript 金额计算

    今天在项目中开发一个计算金额的功能,开始我是这样做的: eg: var amount += parseFloat( 0.01+0.02); 结果:0.0300000000000000001 为什么呢? ...

  4. C#TreeView控件遍历文件夹下所有子文件夹以及文件

    一直对递归的理解不深刻,有时候觉得很简单,可是用起来总会出错.这里需要在TreeView控件里显示一个文件夹下的所有目录以及文件,毫无意外的需要用到递归. 一开始,想到用递归写一个生成每一个节点(Tr ...

  5. DataURL详解--转自格桑blog

    DataURI详解 Posted on 2013 年 09 月 09 日 by admin DataURI,不算新东西,却一直没用过,前些日子在webapp中用了点DataURI,就做了下相关的了解, ...

  6. git笔记 常规使用

    1. 创建分支    git checkout -b fetch_name 2. 添加快照进行登记 git add . 3.登记到仓库 git commit -m 'message' git comm ...

  7. Windows Azure初体验

    目前在IT界,云这个概念的第一意思不再是词典里的解释了.不过它们还是有相同点的——也许确实会酝酿出一块大蛋糕,可也是飘在天上,众神分食之,与我等P民无关.所谓云,不过是网络时代发展到一定阶段的必然产物 ...

  8. (分享)多功能 PDF转换器v3.0版本

    转换的效果非常不错,值得使用.破解成功的截图:这个程序必须随便输入注册码注册,不然会有水印的. 这是程序主界面了 正在测试pdf转word过程,转换结果个人感觉非常不错,跟原版pdf的格式非常接近,个 ...

  9. float、double的有效位数

    Java中的浮点类型有两类,分别是float和double类型,其中float取_7__位有效数据,double取_15__位有效数据

  10. Flex使用Blazeds与Java交互及自定义对象转换详解-DATAGRID读取ORACLE数据

    http://www.cnblogs.com/RocD-DuPeng/articles/1751040.html 一.建立Flex与Java交互的工程. 本文中讲到的交互是利用Blazeds的,因为这 ...