在Android的开发工程中,经常会使用到drawable,它是一种图像的抽象,不能把它看作是一种普通的图片,它可能是一条线,一个图形,或者是一张图片。他本身没有具体的大小,他的大小是由开发者的设置或者是所包含的图像的具体大小而定。drawable的大小在不同机型的大小还可能不同,因为它的大小值同时还受到系统dpi的影响。使用getIntrinsicWidth()和getIntrinsicHeight()可以获得经过系统缩放最后呈现出来的大小。
那么如何获取drawable图片的具体大小呢?安卓系统为不同密度的屏幕准备了不同的文件夹,他们的对应关系如下图所示:
通过getIntrinsicWidth(),系统dpi,图片所在文件对应dpi这三个值,就能算出图片的原始大小。
图片原始宽度 = 图片所在文件夹对应dpi/系统dpi*getIntrinsicWidth()
图片原始高度 = 图片所在文件夹对应dpi/系统dpi*getIntrinsicHeight()
其中,系统dpi可以通过getResources().getDisplayMetrics().densityDpi获取
网友评论