首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在运行时调整图像大小

在运行时调整图像大小
EN

Stack Overflow用户
提问于 2014-03-01 07:07:30
回答 2查看 355关注 0票数 0

我的应用程序中有200+ png图像。最高分辨率为1000 x 1000 is (xxhdpi)。问题是我的apk文件大小远高于50 mb,这是限制。所以,我想要制作一个可绘制的文件夹。但是在低分辨率设备上,我的图像看起来不太好。

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

如果上述方法不可能或不是一个非常有效的方法,请提出其他方法,以有效地减少apk的大小在相当程度上。

EN

回答 2

Stack Overflow用户

发布于 2014-03-01 07:18:52

用这种方法

代码语言:javascript
运行
复制
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
EN

Stack Overflow用户

发布于 2014-03-01 07:15:34

你试过用

代码语言:javascript
运行
复制
ViewTreeObserver obs = mTv.getViewTreeObserver();
obs.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
    @Override
    public boolean onPreDraw () { }
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22111322

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档