码迷,mamicode.com
首页 > 移动开发 > 详细

Android位图相关解码操作

时间:2015-01-21 22:02:15      阅读:216      评论:0      收藏:0      [点我收藏+]

标签:

public class BitMapTools {

?

????/**

???? * 对图片进行解码操作

???? *

???? * @param resource

???? * 资源文件

???? * @param resId

???? * 解码位图的iD

???? * @param reqWidt

???? * 指定输出位图的宽度

???? * @param reqHight

???? * 制定输出位图的高度

???? * @return

???? */

????public static Bitmap decodeBitmap(Resources resource, int resId,

????????????int reqWidth, int reqHight) {

????????// 对位图进行解码的参数设置

????????BitmapFactory.Options option = new BitmapFactory.Options();

????????// 在对位图进行解码的过程中,避免申请内存

????????option.inJustDecodeBounds = true;

????????BitmapFactory.decodeResource(resource, resId, option);

????????//对图片进行压缩

????????option.inSampleSize = calculateInSimpleSize(option, reqWidth, reqHight);

????????option.inJustDecodeBounds = false;

????????return BitmapFactory.decodeResource(resource, resId, option);

????}

?

????/**

???? * 计算相关压缩比例

???? * @param option

???? * @param reqWidth

???? * @param reqHight

???? * @return

???? */

????public static int calculateInSimpleSize(BitmapFactory.Options option,

????????????int reqWidth, int reqHight) {

????????// 获取图片的原始宽高

????????int imageHight = option.outHeight;

????????int imageWidht = option.outWidth;

?

????????// 压缩比例

????????int inSimpleSize = 1;

????????if (imageHight > reqHight || imageWidht > reqWidth) {

????????????final int heightRatio = Math.round(1.0f * imageHight / reqHight);

????????????final int widthRatio = Math.round(1.0f * imageWidht / reqWidth);

????????????inSimpleSize = heightRatio < widthRatio ? heightRatio : widthRatio;

????????}

????????return inSimpleSize;

????}

}

Android位图相关解码操作

标签:

原文地址:http://www.cnblogs.com/Yellow0-0River/p/4240080.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!