获取图片工具类:BitmapUtil
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的更多相关文章
- Java图片工具类,完成图片的截取和任意缩放
package com.common.util; import java.awt.Graphics2D; import java.awt.Image; import java.awt.Renderin ...
- 拍照、本地图片工具类(兼容至Android7.0)
拍照.本地图片工具类:解决了4.4以上剪裁会提示"找不到文件"和6.0动态授予权限,及7.0报FileUriExposedException异常问题. package com.hb ...
- Spring获取bean工具类,可用于在线程里面获取bean
Spring获取bean工具类,可用于在线程里面获取bean import java.util.Locale; import org.springframework.beans.BeansExcept ...
- Android--很实用的图片工具类
import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileNotFoundException; imp ...
- Android 调节图片工具类
package com.base.changeimage; import android.graphics.Bitmap; import android.graphics.Canvas; import ...
- 系统获取 IP 工具类
系统获取 IP 工具类 import java.net.Inet4Address; import java.net.InetAddress; import java.net.NetworkInterf ...
- 如何在SpringBoot当中上传多个图片或者上传单个图片 工具类
如何在SpringBoot当中上传多个图片[上传多个图片 ] 附赠工具类 1.SpringBoot 上传图片工具类 public class SpringUploadUtil { /*** * 上传图 ...
- 压缩图片工具类,压缩100KB以内拿走直接用
最近遇到自拍上传图片过大问题,很烦恼,所以自己写了一个压缩图片的工具类使用,自测效果很不错,可以压缩到KB以内,像素还可以分辨清晰 下面Java代码奉上: import lombok.extern.s ...
- Android自定义圆形图片工具类(CTRL+C加CTRL+V直接使用)
先贴一下工具类的代码!可直接复制粘贴 public class RoundImageView extends ImageView { private Paint mPaint; //画笔 privat ...
随机推荐
- 表在用时建索引要加ONLINE
因为: 源地址:https://zhidao.baidu.com/question/585392982737434725.html 一般建立索引会引起锁表,不允许进行数据更新等DML操作: 如果建立索 ...
- 跳过 centos部署 webpy的各种坑
用centos部署webpy发现的各种坑: 1.python 版本: 2.中文编码: 3.web模块路径: 在命令行里输入python,能import web,但是网站错误报告一直报告没有找到web模 ...
- mvc ajax csrf
http://www.cnblogs.com/zhyp/p/5556980.html http://www.asp.net/web-api/overview/security/preventing-c ...
- Java基础知识:代理
一.代理的概念 动态代理技术是整个java技术中最重要的一个技术,它是学习java框架的基础,不会动态代理技术,那么在学习Spring这些框架时是学不明白的. 动态代理技术就是用来产生一个对象的代理对 ...
- 网络编程(一):用C#下载网络文件的2种方法
使用C#下载一个Internet上的文件主要是依靠HttpWebRequest/HttpWebResonse和WebClient.具体处理起来还有同步和异步两种方式,所以我们其实有四种组合. 1.使用 ...
- Eclipse使用tomcat的原理
1. 当我们使用Eclipse将项目部署到Tomcat的时,我们发现,在Tomcat下的webapps目录下并没有我们创建好的项目,但是当通过Eclipse启动服务器后,项目却真的可以访问到,这是为什 ...
- My SQL外键约束
外键约束对子表的含义:如果在父表中找不到对应的候选键,则不能对子表进行insert/update操作 外键约束对父表的含义:在父表上进行update/delete以更新或删除在子表中有一条或多条对应匹 ...
- Android IOS WebRTC 音视频开发总结(八十七)-- WebRTC中丢包重传NACK实现分析
本文主要介绍WebRTC中丢包重传NACK的实现,作者:weizhenwei ,文章最早发表在编风网,微信ID:befoio 支持原创,转载必须注明出处,欢迎关注我的微信公众号blacker(微信ID ...
- RabbitMQ的安装
随笔记下Rabbit的环境搭建 1.下载RabbitMQ:RabbitMQ下载地址 Windows下安装 <1>安装Erlang 下载地址:Erlang下载 安装: Erlang安装完成 ...
- autolayout
autolayout.因为之前都是用frame,用代码来做,并且在布局时也很少用storyboard和xib.使得我再这方便经验很欠缺,想用,但是又怕用不好,出现各种意想不到的bug.但是又忽然想到, ...