android – 将图像资源加载为RGB 565

前端之家收集整理的这篇文章主要介绍了android – 将图像资源加载为RGB 565前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试降低我的应用程序的内存使用量,我注意到它的大部分是由活动的背景引起的:在XHDPI中,720 * 1280 * 4 =每个3.6Mbytes,Android似乎没有将它们释放为他们不再使用了.

有没有办法告诉Android加载某些资源图像为RGB 565而不是RGB 8888,以便在没有alpha通道的情况下为那些较大的图像保存一些内存?

我知道这可以通过编程方式完成,但我想知道是否也可以使用活动布局中使用的图像和背景或使用setBackgroundResource()来完成.

解决方法

你可以这样做:
protected void onCreate(Bundle savedInstanceState)
{
    setContentView(R.layout.high_scores);
    BitmapFactory.Options opts = new BitmapFactory.Options();
    opts.inPreferredConfig = Config.RGB_565;
    BitmapDrawable highscoresBg = BitmapFactory.decodeResource(getResources(),R.drawable.achievements,opts);
    findViewById(R.id.high_scores_root).setBackgroundDrawable(highscoresBg);

使用ARGB_8888时,图像的像素将存储在2个字节上,而不是4个字节. 50%节省了内存,但质量较差.

这个article告诉我们在Android< 2.3图像默认为RGB_565.但是,如果图像具有Alpha通道(例如PNG),则它将加载到ARGB_8888中.在Android> = 2.3上默认情况下,所有图像都加载到ARGB_8888中.

原文链接:https://www.f2er.com/android/317050.html

猜你在找的Android相关文章