你如何计算加载图像的大小
How do you calculate the size of a loaded image
我在 drawable 文件夹 中有一个图像 image.png
(没有任何其他 drawable-hdpi 等文件夹)。
这张图片的大小是50x50
。但是当我像这样从我的应用程序加载它时:
BitmapFactory.decodeResource(getResources(), R.drawable.image)
然后我用 getWidth()
和 getHeight()
检查大小,我得到 150x150
。
谁能解释一下如何计算这个 150x150
加载大小? (不是以编程方式,我只是想知道是否有一个公式可以用来告诉图像将被加载到 150x150
)
另外,这个 150x150
以像素为单位吗?
谢谢!
如果您有 Drawable
个图像并且您想要计算已加载图像的大小
Drawable d = getResources().getDrawable(R.drawable.image);
int h = d.getIntrinsicHeight();
int w = d.getIntrinsicWidth();
Android 文档说:
public int getIntrinsicHeight ()
Return the intrinsic height of the underlying drawable object. Returns
-1 if it has no intrinsic height, such as with a solid color.
public int getIntrinsicWidth ()
Return the intrinsic width of the underlying drawable object.Returns
-1 if it has no intrinsic width, such as with a solid color.
- 是的,这个值是以像素为单位的,利用java文档我的朋友~
- 如果你想让图片大小不变,把它放到
drawable-nodpi
- 如果你把图片放在
drawable
里,它和drawable-mdpi
里的一样,作为第一个Android供电的设备,T-Mobile G1是一个正常尺寸和 mdpi(中等)密度 :)
没有神奇的公式:
ldpi (low) ~120dpi
mdpi (medium) ~160dpi
hdpi (high) ~240dpi
xhdpi (extra-high) ~320dpi
xxhdpi (extra-extra-high) ~480dpi
xxxhdpi (extra-extra-extra-high) ~640dpi
也就是说,在您的情况下,可能在 xxhdpi 设备上开发,480/160*50=150,请记住 android 旨在以相同的大小可视化所有 ui 元素在所有屏幕上,因此密度越高,缩放图像越大。
在 android 工作室中,我们使用像这样组合的图像尺寸。
我在 drawable 文件夹 中有一个图像 image.png
(没有任何其他 drawable-hdpi 等文件夹)。
这张图片的大小是50x50
。但是当我像这样从我的应用程序加载它时:
BitmapFactory.decodeResource(getResources(), R.drawable.image)
然后我用 getWidth()
和 getHeight()
检查大小,我得到 150x150
。
谁能解释一下如何计算这个 150x150
加载大小? (不是以编程方式,我只是想知道是否有一个公式可以用来告诉图像将被加载到 150x150
)
另外,这个 150x150
以像素为单位吗?
谢谢!
如果您有 Drawable
个图像并且您想要计算已加载图像的大小
Drawable d = getResources().getDrawable(R.drawable.image);
int h = d.getIntrinsicHeight();
int w = d.getIntrinsicWidth();
Android 文档说:
public int getIntrinsicHeight ()
Return the intrinsic height of the underlying drawable object. Returns -1 if it has no intrinsic height, such as with a solid color.
public int getIntrinsicWidth ()
Return the intrinsic width of the underlying drawable object.Returns -1 if it has no intrinsic width, such as with a solid color.
- 是的,这个值是以像素为单位的,利用java文档我的朋友~
- 如果你想让图片大小不变,把它放到
drawable-nodpi
- 如果你把图片放在
drawable
里,它和drawable-mdpi
里的一样,作为第一个Android供电的设备,T-Mobile G1是一个正常尺寸和 mdpi(中等)密度 :) 没有神奇的公式:
ldpi (low) ~120dpi
mdpi (medium) ~160dpi
hdpi (high) ~240dpi
xhdpi (extra-high) ~320dpi
xxhdpi (extra-extra-high) ~480dpi
xxxhdpi (extra-extra-extra-high) ~640dpi也就是说,在您的情况下,可能在 xxhdpi 设备上开发,480/160*50=150,请记住 android 旨在以相同的大小可视化所有 ui 元素在所有屏幕上,因此密度越高,缩放图像越大。
在 android 工作室中,我们使用像这样组合的图像尺寸。