如何计算加载图像的大小

时间:2015-10-12 03:38:32

标签: android android-drawable android-bitmap

我在drawable文件夹中有一个图像image.png(不是任何其他drawable-hdpi等文件夹)。

此图片的尺寸为50x50。但是,当我从我的应用程序加载它时,如下所示:     BitmapFactory.decodeResource(getResources(), R.drawable.image)

然后我使用getWidth()getHeight()检查尺寸,我得到150x150

任何人都可以解释如何计算这个150x150加载的大小? (不是以编程方式,我只是想知道是否有一个公式我可以用来判断图像是否会加载到150x150

另外,这是150x150像素吗?

谢谢!

3 个答案:

答案 0 :(得分:1)

  • 是的,价值是以像素为单位,利用 java doc 我的朋友〜
  • 如果您希望图片大小保持不变,请将其放入drawable-nodpi
  • 如果您将图片放在drawable中,则与drawable-mdpi中的图片相同,作为第一个Android设备,T-Mobile G1是正常尺寸和mdpi(中等) )密度:)
  • 没有神奇的公式:

      

    ldpi(低)~120dpi
      mdpi(中)~160dpi
      hdpi(高)~240dpi
      xhdpi(超高)~320dpi
      xxhdpi(超高)~480dpi
      xxxhdpi(extra-extra-extra-high)~640dpi

    也就是说,在你的情况下,可能在xxhdpi设备上开发,480/160 * 50 = 150,记住android设计为在所有屏幕上可视化所有相同大小的ui元素,因此密度越高,更大的缩放图像。

答案 1 :(得分:0)

如果您有Drawable图片,并且想要计算已加载图片的尺寸

Drawable d = getResources().getDrawable(R.drawable.image);
int h = d.getIntrinsicHeight(); 
int w = d.getIntrinsicWidth();  

Android文档说:

  

public int getIntrinsicHeight()

     

返回底层可绘制对象的内在高度。返回   如果它没有固有高度,则为-1,例如纯色。

     

public int getIntrinsicWidth()

     

返回底层可绘制对象的固有宽度。返回   如果它没有固有宽度,则为-1,例如纯色。

答案 2 :(得分:0)

在android studio中我们使用像这种组合的图像大小。