gpt4 book ai didi

android - 我怎样才能让我的图像消耗更少的内存?

转载 作者:行者123 更新时间:2023-11-30 03:34:11 25 4
gpt4 key购买 nike

我正在开发一款游戏,我正在处理图形,我遇到了一些强制关闭。所以我的问题是:我们如何制作图像以在 android 中消耗更少的内存?

我会解释我的游戏,它是一个带有一些小图像和背景的逻辑游戏。我在 galaxy note 和 1 GB RAM 中测试该应用程序,我认为它可以采用高分辨率,但如果我使用大图像作为背景,它会在进入暂停布局并返回后强制关闭。

所以我降低了图形并在没有强制关闭的情况下完成。无论如何有什么办法可以避免这个内存问题?我直接在 xml 上设置图像是错误的吗?


已解决

我决定采用这种方法,感谢 Durairaj Packirisamy 的回答

这是我的代码:

        Bitmap unscaledimgswitch = BitmapFactory.decodeResource(getResources(), R.drawable.switch1on);
ImageView switch1 = (ImageView) findViewById(R.id.switch1);


int viewheight = screenheight / 10;
int imgheight = unscaledimgswitch.getHeight();
switch1.getLayoutParams().height = viewheight;




BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
options.inSampleSize = ScaledFactor.getScaleFactor(imgheight ,viewheight); // de esta forma cargo la imagen del tamaño exacto necesario
options.inJustDecodeBounds = false;
imgswitch = BitmapFactory.decodeResource(getResources(), R.drawable.switch1on, options);
switch1.setImageBitmap(imgswitch);

在另一个类(class)

    static int getScaleFactor(int imgheight, int viewheight) { 
int result;

result = imgheight / viewheight ;



return result;
}

最佳答案

您需要使用适当的 BitmapFactory.options.inSampleSize 值,如果设置值 > 1,请求解码器对原始图像进行子采样,返回较小的图像以节省内存。

BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 4;
Bitmap bitmap = BitmapFactory.decodeStream(stream, null, options);

也可以看看这里:

http://developer.android.com/training/displaying-bitmaps/load-bitmap.html

关于android - 我怎样才能让我的图像消耗更少的内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16908879/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com