用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - android代码库

Bitmap获取优化

2016-05-24 作者: 小松鼠举报

[android]代码库

public static Bitmap getBitmapBySimpleSize(Object object, float width,
		float height) {
	if (null == object) {
		return null;
	}
	BitmapFactory.Options options = new BitmapFactory.Options();
	options.inJustDecodeBounds = true;
	// 通过这个bitmap获取图片的宽和高
	Bitmap bitmap = BitmapFactory.decodeFile(object.toString(), options);
	if (options.outWidth > width) {
		int scale = (int) (options.outWidth / width);
		// 如果按照宽度缩放比例导致高度小于原定高度,则按照高度的缩放比例来缩放
		if (options.outHeight / scale < height) {
			scale = (int) (options.outHeight / height);
		}
		// Logger.e( "HongLi" , "options.outWidth1:" + options.outWidth +
		// ";options.outHeight:" + options.outHeight );
		scale = scale <= 0 ? 1 : scale;
		options.inSampleSize = scale;
		options.outWidth = options.outWidth / options.inSampleSize;
		options.outHeight = options.outHeight / options.inSampleSize;
		// Logger.e( "HongLi" , "options.outWidth2:" + options.outWidth +
		// ";options.outHeight:" + options.outHeight );
	}
	setBitmapNormalOptions(options);
	// 注意这次要把options.inJustDecodeBounds 设为 false,这次图片是要读取出来的。
	bitmap = BitmapFactory.decodeFile(object.toString(), options);
	return bitmap;
}

private static void setBitmapNormalOptions(Options options) {
	if (null == options) {
		return;
	}
	options.inJustDecodeBounds = false;
	options.inPurgeable = true;
	options.inInputShareable = true;
	options.inPreferredConfig = Bitmap.Config.ARGB_8888;
}


网友评论    (发表评论)

共1 条评论 1/1页

发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...