Graphic dimensions for hdpi/ldpi/mdpi

前端 未结 4 1320
被撕碎了的回忆
被撕碎了的回忆 2020-12-12 19:51

I have a button graphic with dimensions 300*90.How must be the dimensions for hdpi/mdpi/ldpi?Thanks

4条回答
  •  無奈伤痛
    2020-12-12 20:07

    Complete Formula to create all asset folder images

    First you have to decide for which DPI you are creating Images for, once you have decided and created images then use the following code accordance with Google Guide Lines

    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);
    
        }
    }
    

    Result

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

提交回复
热议问题