解决方案 »
- android 蓝牙连接问题 在线等啊 求帮助 谢谢了
- 截屏
- 使用Application类共享数据的问题
- android 添加CheckBox单击事件编译通过,但模拟器中报错,这是为什么?
- Remoteviews上的Imageview如何拖动,急!急!急!
- ListView显示数据的问题
- 还请大神帮忙翻译下这个Client,急急急急急急。听说标题一定要长。。。。。。。。。
- Android聊天IM消息列表刷新问题
- 请问 有谁清楚京东、淘宝APP是否使用HTML5
- ERROR: Could not find method implementationSdkVersion() for arguments [28] on ob
- 如何在内部类中引用父类的成员
- 请问现在4.4中,activity管理栈中最多存放多少个activity组件?
// 取得图片
InputStream temp = this.getAssets().open(path);
BitmapFactory.Options options = new BitmapFactory.Options();
// 这个参数代表,不为bitmap分配内存空间,只记录一些该图片的信息(例如图片大小),说白了就是为了内存优化
options.inJustDecodeBounds = true;
// 通过创建图片的方式,取得options的内容(这里就是利用了java的地址传递来赋值)
BitmapFactory.decodeStream(temp, null, options);
// 关闭流
temp.close();
// 生成压缩的图片
int i = 0;
Bitmap bitmap = null;
while (true) {
// 这一步是根据要设置的大小,使宽和高都能满足
if ((options.outWidth >> i <= size)
&& (options.outHeight >> i <= size)) {
// 重新取得流,注意:这里一定要再次加载,不能二次使用之前的流!
temp = this.getAssets().open(path);
// 这个参数表示 新生成的图片为原始图片的几分之一。
options.inSampleSize = (int) Math.pow(2.0D, i);
// 这里之前设置为了true,所以要改为false,否则就创建不出图片
options.inJustDecodeBounds = false;
bitmap = BitmapFactory.decodeStream(temp, null, options);
break;
}
i += 1;
}
return bitmap;