参数说明2: String ( 解压后文件存放的路径,例如存放到手机根目录下/aaa文件夹,则传aaa )
参数说明3: boolean(是否打开调试日志...设置为true 的时候 logcat中输入 qqkj_frame)
参数说明4: ZipListener (解压进度回调监听,例如,返回10,就是10%)
函数返回值说明:boolean(true,解压成功,false,解压失败)
这个给个例子
如果你只是觉得程序背景图片大的话 这个应该是美工的问题 找个专业的美工设计下就Ok的
如果是程序中想压缩图片的话 网上的方法很多
下面代码是将图片按比例大小压缩方法(根据Bitmap图片压缩)
private Bitmap comp(Bitmap image) {ByteArrayOutputStream baos = new ByteArrayOutputStream()
image.compress(Bitmap.CompressFormat.JPEG, 100, baos)
if( baos.toByteArray().length / 1024>1024) {//判断如果图片大于1M,进行压缩避免在生成图片(BitmapFactory.decodeStream)时溢出
baos.reset()//重置baos即清空baos
image.compress(Bitmap.CompressFormat.JPEG, 50, baos)//这里压缩50%,把压缩后的数据存放到baos中
}
ByteArrayInputStream isBm = new ByteArrayInputStream(baos.toByteArray())
BitmapFactory.Options newOpts = new BitmapFactory.Options()
//开始读入图片,此时把options.inJustDecodeBounds 设回true了
newOpts.inJustDecodeBounds = true
Bitmap bitmap = BitmapFactory.decodeStream(isBm, null, newOpts)
newOpts.inJustDecodeBounds = false
int w = newOpts.outWidth
int h = newOpts.outHeight
//现在主流手机比较多是800*480分辨率,所以高和宽我们设置为
float hh = 800f//这里设置高度为800f
float ww = 480f//这里设置宽度为480f
//缩放比。由于是固定比例缩放,只用高或者宽其中一个数据进行计算即可
int be = 1//be=1表示不缩放
if (w > h && w > ww) {//如果宽度大的话根据宽度固定大小缩放
be = (int) (newOpts.outWidth / ww)
} else if (w < h && h > hh) {//如果高度高的话根据宽度固定大小缩放
be = (int) (newOpts.outHeight / hh)
}
if (be <= 0)
be = 1
newOpts.inSampleSize = be//设置缩放比例
newOpts.inPreferredConfig = Config.RGB_565//降低图片从ARGB888到RGB565
//重新读入图片,注意此时已经把options.inJustDecodeBounds 设回false了
isBm = new ByteArrayInputStream(baos.toByteArray())
bitmap = BitmapFactory.decodeStream(isBm, null, newOpts)
return compressImage(bitmap)//压缩好比例大小后再进行质量压缩
}
【ps:看你自己的需要吧 给个地方做参考 http://my.eoe.cn/isnull/archive/564.html 你也可以搜索下 其他的方法 】
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)