在运行时调整图像大小 - Android

时间:2014-03-01 07:07:30

标签: android image-processing resize

我的应用中有200多个png图像。最高分辨率为1000 x 1000px(xxhdpi)。 问题是我的apk文件大小超过50 MB这是限制。所以,我想要制作一个可绘制的文件夹。但是在低分辨率设备上,我的图像效果不佳。

那么我如何在运行时调整图像大小以适应所有小屏幕设备

如果上述方法不可行或不是一种非常有效的方法,请建议其他方法在相当程度上有效降低apk大小。

2 个答案:

答案 0 :(得分:1)

使用此方法

public static Bitmap decodeSampledBitmapFromResource(Resources res,
        int resId, int reqWidth, int reqHeight) {

    // First decode with inJustDecodeBounds=true to check dimensions
    final BitmapFactory.Options options = new BitmapFactory.Options();
    options.inJustDecodeBounds = true;
    BitmapFactory.decodeResource(res, resId, options);

    // Calculate inSampleSize
    options.inSampleSize = calculateInSampleSize(options, reqWidth,
            reqHeight);

    // Decode bitmap with inSampleSize set
    options.inJustDecodeBounds = false;
    return BitmapFactory.decodeResource(res, resId, options);
}

只需输入您的活动资源,图片的资源ID,所需的宽度和高度,此方法将返回调整大小的位图。

答案 1 :(得分:-1)

您是否尝试过使用

ViewTreeObserver obs = mTv.getViewTreeObserver();
obs.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
    @Override
    public boolean onPreDraw () { }