Drawable之getIntrinsicWidth()和getIntrinsicHeight()以及获取drawable的原始宽度和高度

        在Android的开发工程中,经常会使用到drawable,它是一种图像的抽象,不能把它看作是一种普通的图片,它可能是一条线,一个图形,或者是一张图片。他本身没有具体的大小,他的大小是由开发者的设置或者是所包含的图像的具体大小而定。drawable的大小在不同机型的大小还可能不同,因为它的大小值同时还受到系统dpi的影响。使用getIntrinsicWidth()和getIntrinsicHeight()可以获得经过系统缩放最后呈现出来的大小。

        那么如何获取drawable图片的具体大小呢?安卓系统为不同密度的屏幕准备了不同的文件夹,他们的对应关系如下图所示:


通过getIntrinsicWidth(),系统dpi,图片所在文件对应dpi这三个值,就能算出图片的原始大小。

图片原始宽度 = 图片所在文件夹对应dpi/系统dpi*getIntrinsicWidth()

图片原始高度 = 图片所在文件夹对应dpi/系统dpi*getIntrinsicHeight()

其中,系统dpi可以通过getResources().getDisplayMetrics().densityDpi获取

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容