安卓图片代码压缩(效果简直爆炸)

Posted 情似雨餘黏地絮

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了安卓图片代码压缩(效果简直爆炸)相关的知识,希望对你有一定的参考价值。

话不多说,直接上代码,主函数中直接怼两个方法进去,复制粘贴即可

 //图片压缩功能获取长宽比
    public static int calculateInSampleSize(BitmapFactory.Options options,
                                            int reqWidth, int reqHeight) {
        // 源图片的高度和宽度
        final int height = options.outHeight;
        final int width = options.outWidth;
        int inSampleSize = 1;
        if (height > reqHeight || width > reqWidth) {
            // 计算出实际宽高和目标宽高的比率
            final int heightRatio = Math.round((float) height / (float) reqHeight);
            final int widthRatio = Math.round((float) width / (float) reqWidth);
            // 选择宽和高中最小的比率作为inSampleSize的值,这样可以保证最终图片的宽和高
            // 一定都会大于等于目标的宽和高。
            inSampleSize = heightRatio < widthRatio ? heightRatio : widthRatio;
        }
        return inSampleSize;
    }
    //图片压缩功能
    public static Bitmap decodeSampledBitmapFromResource(Resources res, int resId,
                                                         int reqWidth, int reqHeight) {
        // 第一次解析将inJustDecodeBounds设置为true,来获取图片大小
        final BitmapFactory.Options options = new BitmapFactory.Options();
        options.inJustDecodeBounds = true;
        BitmapFactory.decodeResource(res, resId, options);
        // 调用上面定义的方法计算inSampleSize值
        options.inSampleSize = calculateInSampleSize(options, reqWidth, reqHeight);
        // 使用获取到的inSampleSize值再次解析图片
        options.inJustDecodeBounds = false;
        return BitmapFactory.decodeResource(res, resId, options);
    }

方法调用,哪里要图片就塞哪里,直接把图片给你整成100*100

imageView.setImageBitmap(
                    decodeSampledBitmapFromResource(getResources(), imgs[position], 100, 100));

 

以上是关于安卓图片代码压缩(效果简直爆炸)的主要内容,如果未能解决你的问题,请参考以下文章

Python游戏篇:细节之大型游戏爆炸效果(附代码)

Python游戏篇:细节之大型游戏爆炸效果(附代码)

UWP中实现大爆炸效果

那些年video遇到的坑

delphi GDI 图片压缩代码 据说是位图缩放保持原图视觉效果最好的算法

iOS 实现安卓.9效果拉伸图片