压缩图片主要使用BitmapFactory.Options的对象,以及BitmapFactory.decodeFile(String pathName,Options options)方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
//根据图片尺寸压缩图片 BitmapFactory.Options options = new BitmapFactory.Options(); options.inJustDecodeBounds = true;// 不会将图片真的取到内存,只获取图片宽高 BitmapFactory.decodeFile(imageUrlsString, options);//imageUrlsString 本地图片的路径 double compressSize = Math.max(options.outWidth * 1.0d / 1024f, options.outHeight * 1.0d / 1024f);//根据宽高计算压缩比 options.inSampleSize = (int) Math.ceil(compressSize);//ceil()向上取整 options.inJustDecodeBounds = false; bitmap = BitmapFactory.decodeFile(imageUrlsString, options); //固定压缩比压缩图片 BitmapFactory.Options options1 = new BitmapFactory.Options(); options1.inSampleSize =4;//宽高都为原始图片1/4,图片大小为原来的1/16 bitmap = BitmapFactory.decodeFile(imageUrlsString, options); |
0 Comments