• android 中 dp和px转换


    DisplayUtils代码:

    public class DisplayUtil {
    
        public static int px2dip(Context context, float px) {
            float scale = context.getResources().getDisplayMetrics().density;
            return (int) (px / scale + 0.5f);
        }
    
        public static int dip2px(Context context, float dp) {
            float scale = context.getResources().getDisplayMetrics().density;
            return (int) (dp * scale + 0.5f);
        }
    }
    

    Android Framework也提供了相应的工具类供我们使用的。TypedValue 中的 applyDimension() 方法:

    /**
         * 
         * @param unit The unit to convert from.
         * @param value The value to apply the unit to.
         * @param metrics Current display metrics to use in the conversion -- 
         *                supplies display density and scaling information.
         */
        public static float applyDimension(int unit, float value,
                                           DisplayMetrics metrics)
        {
            switch (unit) {
            case COMPLEX_UNIT_PX:
                return value;
            case COMPLEX_UNIT_DIP:
                return value * metrics.density;
            case COMPLEX_UNIT_SP:
                return value * metrics.scaledDensity;
            case COMPLEX_UNIT_PT:
                return value * metrics.xdpi * (1.0f/72);
            case COMPLEX_UNIT_IN:
                return value * metrics.xdpi;
            case COMPLEX_UNIT_MM:
                return value * metrics.xdpi * (1.0f/25.4f);
            }
            return 0;
        }

     使用方法:

            //获取10dp
            int dp= (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,10,getResources().getDisplayMetrics());
            //获取10px
            int px= (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_PX,10,getResources().getDisplayMetrics());
            //获取10sp
            int sp= (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP,10,getResources().getDisplayMetrics());
    

      






  • 相关阅读:
    CHIL-SQL-DELETE 语句
    Eclipse 创建新的workspace
    Eclipse 创建新的workspace
    Eclipse 创建新的workspace
    Eclipse 创建新的workspace
    遇见未来 | 对话王璞:谈分布式系统在企业落地的挑战
    onclick事件
    Form插件
    jquery 插件
    深入解析:Row Movement 的原理和性能影响与关联
  • 原文地址:https://www.cnblogs.com/wangjiaghe/p/9061208.html
Copyright © 2020-2023  润新知