hdpi / ldpi / mdpi的graphics尺寸

我有一个尺寸为300 * 90的buttongraphics。如何确定hdpi / mdpi / ldpi的尺寸?谢谢

Solutions Collecting From Web of "hdpi / ldpi / mdpi的graphics尺寸"

谷歌build议使用

3 : 4 : 6 : 8 : 12 : 16缩放比例

ldpi : mdpi : hdpi : xhdpi : xxhdpi : xxxhdpi 。 例:

  • 36×36为低密度
  • 48×48为中等密度
  • 72×72为高密度
  • 96×96超高密度
  • 超高密度的144×144
  • 超高密度192×192( 仅适用于启动器图标 )

在你的例子中,如果提到的button尺寸是hdpi,正确的尺寸应该是:

  • 150×45 ldpi
  • 200×60 mdpi
  • 300×90 hdpi
  • 400×120 xhdpi
  • 600×180 xxhdpi

这取决于您devise的graphics所针对的设备大小。 如果要在320×480(HVGA)canvas上将其显示为300×90,则对于MDPI设备,像素尺寸是正确的,您将需要以下图像:

  • LDPI:225x68px
  • MDPI:300x90px
  • HDPI:450x135px

LDPI是MDPI缩放的75%,HDPI是MDPI缩放的150%。 例如,如果您在480×800(WVGA)canvas上devise了这些graphics尺寸,那么您的尺寸对于HDPI已经是正确的了,并且您需要从其中缩小另外两个:

  • LDPI:150x45px
  • MDPI:200x60px
  • HDPI:300x90px

希望帮助!

完整公式来创build所有资产文件夹图像

首先,您必须决定为哪个DPI创buildImages,一旦您决定并创build了图像,请使用以下代码按照Google指南行

 public class DPICalculator { private final float LDPI = 120; private final float MDPI = 160; private final float HDPI = 240; private final float XHDPI = 320; private final float BASE_DPI = MDPI; public static void main(String[] args) { DPICalculator cal = new DPICalculator(); cal.calculateDPI_baseUnitPixel(300, 90, cal.HDPI); } private float densityWidth; private float densityHeight; public void calculateDPI_baseUnitPixel(float width, float height, float currentDensity) { densityWidth = getDensityPX(width, currentDensity); densityHeight = getDensityPX(height, currentDensity); this.calculateAllDP(); } private float getDensityPX(float value, float currentDensity) { return (value / (currentDensity / BASE_DPI)); } public void calculateDPI_baseUnitDPI(float width, float height, float currentDensity) { densityWidth = getDensityDPI(width, currentDensity); densityHeight = getDensityDPI(height, currentDensity); this.calculateAllDP(); } private float getDensityDPI(float value, float currentDensity) { return (value * (currentDensity / BASE_DPI)); } private void calculateAllDP() { // get all settings. float low_pw = densityWidth * (LDPI / BASE_DPI); float low_ph = densityHeight * (LDPI / BASE_DPI); float med_pw = densityWidth * (MDPI / BASE_DPI); float med_ph = densityHeight * (MDPI / BASE_DPI); float high_pw = densityWidth * (HDPI / BASE_DPI); float high_ph = densityHeight * (HDPI / BASE_DPI); float xhigh_pw = densityWidth * (XHDPI / BASE_DPI); float xhigh_ph = densityHeight * (XHDPI / BASE_DPI); System.out.println("LDPI " + low_pw + " x " + low_ph); System.out.println("MDPI " + med_pw + " x " + med_ph); System.out.println("HDPI " + high_pw + " x " + high_ph); System.out.println("XHDPI " + xhigh_pw + " x " + xhigh_ph); } } 

结果

 LDPI 150.0 x 45.0 MDPI 200.0 x 60.0 HDPI 300.0 x 90.0 XHDPI 400.0 x 120.0 

为此,你可以尝试我的工具,这是为了缩放不同types的图像(单个或批量)(PNG,JPG,GIF,SVG,PSD,9补丁..)。 使用hiqh质量缩放algorithm,并支持某些无损压缩工具,如pngcrush。 有一个GUI和命令行用户界面。

https://github.com/patrickfav/density-converter

截图