获取图片工具类: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 ...
随机推荐
- 没想到cnblog也有月经贴,其实C#值不值钱不重要。
呵呵,就不倚老卖老了,从basic走过来,一路经历vb,vf,delphi,C#,php,asp,html,js,css,太多太多的开发语言,包括面向对象编程思想,语义化页面结构等等,除了高级的编程技 ...
- 查看MS SQL SERVER 错误日志
查看目的: 错误日志的查看是确保过程已成功完成(例如,备份和恢复操作,批处理命令,或其他脚本和过程).这可以帮助检测任何当前或潜在的问题,包括自动恢复信息(尤其是如果SQL Server实例已停止并重 ...
- Lucene学习之一:使用lucene为数据库表创建索引,并按关键字查询
最近项目中要用到模糊查询,开始研究lucene,期间走了好多弯路,总算实现了一个简单的demo. 使用的lucene jar包是3.6版本. 一:建立数据库表,并加上测试数据.数据库表:UserInf ...
- java中的集合和区别
Iterator接口是负责定义访问和遍历元素的接口 Connection接口存储了一组不唯一(允许重复)的无序对象 Set接口继承了Connection接口,主要用来存储一组唯一(不允许重复的),无序 ...
- windows python文件拷贝到linux上执行问题
之前在Windows下写好了一个Python脚本,运行没问题,今天在Linux下,脚本开头的注释行已经指明了解释器的路径,也用chmod给了执行权限,但就是不能直接运行脚本. 1 问题1: 报错:: ...
- VS中附加进程的方式调试IIS页面,以及设置断点无效问题解决
以前调试网站的时候都习惯是直接在解决方案中右键调试——启动新实例,后来发现这样的缺点有: 1.启动比较慢: 2.一些浏览器的request参数无法带入: 3.不特殊指定启动url的话,VS会将页面加载 ...
- NodeJs 创建 Web 服务器
以下是演示一个最基本的 HTTP 服务器架构(使用8081端口),创建 ser.js 文件,代码如下所示: var http = require('http'); var fs = require(' ...
- Java应用程序访问网络资源--HttpClient
HttpClient的最本质的功能是执行HTTP方法.一个HTTP方法的执行涉及到一个或几个HTTP请求/ HTTP响应的交流,通常由HttpClient的内部处理.用户预计将提供一个请求对象来执行和 ...
- Spring 之注解事务 @Transactional
众所周知的ACID属性: 原子性(atomicity).一致性(consistency).隔离性(isolation)以及持久性(durability).我们无法控制一致性.原子性以及持久性,但可以 ...
- LR12.53—第5课:创建负载测试场景
在前面的课程中,您使用VuGen将验证您的Vuser脚本.在本课中,您将评估多个Vuser的负载下您的系统.您将模拟十个旅行代理同时使用航班预订系统的行动,以及这些用户的负载下观察系统的行为.设计和运 ...