我是靠谱客的博主 整齐大神,最近开发中收集的这篇文章主要介绍【android学习】APP图片内存计算,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

图片尺寸大小计算

当图片文件放在项目的drawable目录时候:

  • drawable文件尺寸与pc中文件尺寸关系
目录屏幕密度
drawable-ldpi120dpi
drawable-mdpi160dpi
drawable-hdpi240dpi
drawable-xhdpi320dpi
drawable-xxhdpi480dpi
  • 获取手机的屏幕密度
C:UsersAdministrator>adb shell wm density
Physical density: 440

图片尺寸计算公式:

在手机中的width= (手机的屏幕密度/drawable目录设定的屏幕密度)* 图片在PC上面的宽度

在手机中的height= (手机的屏幕密度/drawable目录设定的屏幕密度)* 图片在PC上面的高度

 

举一个简单例子:

图片在pc上面的宽高为

demo.jpg存放在drawable-xhdpi目录,在代码中获取到的值

        BitmapFactory.Options options = new BitmapFactory.Options();
        Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.demo, options);
        Log.d(TAG, "width: " + bitmap.getWidth() + "  height : " + bitmap.getHeight());
        Log.d(TAG, "drawable-xhdpi屏幕密度: " + options.inDensity);
        Log.d(TAG, "内存大小  " + bitmap.getAllocationByteCount());

得到的结果是

2019-07-30 17:59:54.938 2286-2286/? D/MainActivity: width: 660  height : 880
2019-07-30 17:59:54.938 2286-2286/? D/MainActivity: drawable-xhdpi屏幕密度: 320
2019-07-30 17:59:54.938 2286-2286/? D/MainActivity: 内存大小  2323200

这里的  660 = 440/320*480

             880 = 440/320*640

图片内存计算

先看图片的格式及其所占用的字节数,图片加载如果没有设置,默认是ARGB_8888

格式字节数
ALPHA_81个字节
RGB_5652个字节
ARGB-44442个字节
ARGB_88884个字节

内存计算公式: 内存 = 图片宽 * 图片高 * 每个像素所暂用的字节数

举个例子

上面的图片内存:  2323200 = 660 * 880 * 4

2019-07-30 17:59:54.938 2286-2286/? D/MainActivity: width: 660  height : 880
2019-07-30 17:59:54.938 2286-2286/? D/MainActivity: drawable-xhdpi屏幕密度: 320
2019-07-30 17:59:54.938 2286-2286/? D/MainActivity: 内存大小  2323200

总结:

这里主要是从drawable中读取图片,获得的图片尺寸大小需要根据相应的手机密度以及drawable密度做相应的缩放,如果是从sdcard中读取,就没有缩放,直接使用图片宽*高*相应的字节数

最后

以上就是整齐大神为你收集整理的【android学习】APP图片内存计算的全部内容,希望文章能够帮你解决【android学习】APP图片内存计算所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(58)

评论列表共有 0 条评论

立即
投稿
返回
顶部