笔试题(Android)----牛客网

本文讨论了一道Android笔试题,涉及图片在drawable-xxhdpi目录下,在xhdpi屏幕密度手机上的内存占用计算。解释了Bitmap.Config的不同类型以及Android资源适配原则,强调了合理配置资源以避免内存消耗过大的问题。同时,文章还涵盖了Android中的style和theme的区别,Intent能传递的数据类型,以及线程释放锁资源的相关操作。
摘要由CSDN通过智能技术生成
  1. 有一张尺寸为 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值