首页 > 移动平台 > 详细

Android位图相关解码操作

时间:2015-01-21 22:02:00      阅读:326      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!