一、前言
本来只想说下Bitmap和内存的基本关系,但发现如果真的想把这看似简单的事情说清楚,实际上未必那么简单,你不信?不妨先尝试下回答下面几个问题!
- 问1:什么是dpi?什么是dp?答:你在侮辱我?我拒绝回答!(:无辜脸
- 问2:以Nexus6为例,分辨率1440*2560,5.96英寸,ppi是什么?dpi是什么?1dp是多少像素?
- 问3:还以Nexus6为例,一张180*180的图片,放置在设置了
wrap_content
属性的ImageView中,当这张图片,分别放在drawable-nodpi
,drawable-mdpi
,drawable-hdpi
,drawable-xxhdpi
,drawable-xxxhdpi
这几个资源目录中,在屏幕上分别显示多大(像素)的图片? - 问4:这张图片占用的内存大小分别为多少?
- 问5:如果设置ImageView的宽和高为固定的值,如50px,那么上述情况下,加载的Bitmap占用内存大小分别为多大?
本文主要围绕上述问题,介绍Android图片资源加载的基本机制,图片的内存大小如何计算,以及内存图片分析工具。