-
有一张尺寸为 72*72 像素的图片,其采用 ARGB8888 格式存储,现将其置于某应用的 drawable-xxhdpi 目录中,在屏幕密度为 xhdpi 的手机上运行此应用。 问:此图片不经过采样直接加载后将占用多少 byte 内存?()
每个像素占用多少 byte ?
Bitmap.Config 有四种枚举类型。
通道类型后数字表示每个通道占的大小
ARGB_8888:每个通道 8 bit * 4个通道 = 32 bit = 4 byte,即每个像素点占用4字节
ARGB_4444:同理,2 字节
RGB_565:RGB 3个通道分别是 5 、6 、5 ,加起来 16 bit,也就是 2 个 byte
ALPHA_8:只有 A 通道,占 8 bit,1 个byte
被加载的图片有多少像素点呢?
各资源文件对应屏幕密度(每英寸的像素点)
ldpi mdpi hdpi xhdpi xxhdpi
120 160 240 320 480
注意:实际加载的像素不一定等于原图像素,如资源目录屏幕密度与目标机器不匹配,将按比例缩放
总结
此类问题公式如下:
类型占用比特 x 图片原像素宽 x(目标机器屏幕密度/资源文件夹代表屏幕密度)x 图片原像素高 x(目标机器屏幕密度/资源文件夹代表屏幕密度)
4 * 72 * (320/480) * 72 * (320/480)= 9216 byte
这也是为什么在开发中往往尽可能配齐多个资源文件夹,在高分别率的机器上使用低分辨率资源文件夹的资源有可能导致占用内存翻倍&#x
笔试题(Android)----牛客网
最新推荐文章于 2024-08-13 21:26:22 发布
本文讨论了一道Android笔试题,涉及图片在drawable-xxhdpi目录下,在xhdpi屏幕密度手机上的内存占用计算。解释了Bitmap.Config的不同类型以及Android资源适配原则,强调了合理配置资源以避免内存消耗过大的问题。同时,文章还涵盖了Android中的style和theme的区别,Intent能传递的数据类型,以及线程释放锁资源的相关操作。
摘要由CSDN通过智能技术生成