zoukankan      html  css  js  c++  java
  • Android单位转换 (px、dp、sp之间的转换工具类)

       在Android开发中,涉及到屏幕视频问题的时候,px、dp、sp之间的转换比较重要的一部分,所以杨哥整理了一个工具类给大伙用。

    package com.zw.express.tool;


    import android.content.Context;
    import android.util.DisplayMetrics;
    /**
     * ydc
     * @author Administrator
     *
     */
    public class DensityUtils {
     /**
         * 根据手机的分辨率从 dip 的单位 转成为 px(像素)
         */
    public static int dp2px(Context context, float dpValue) {
    DisplayMetrics dm = context.getResources().getDisplayMetrics();
    final float scale = dm.density;
    return (int) (dpValue * scale + 0.5f);
    }


    /**
         * 根据手机的分辨率从 px(像素) 的单位 转成为 dp
         */
    public static float px2dp(Context context, float pxValue) {
    DisplayMetrics dm = context.getResources().getDisplayMetrics();
    final float scale = dm.density;
    return (pxValue - 0.5f)/scale ; 
    }


     /**
         * 将px值转换为sp值,保证文字大小不变
         */
    public static int px2sp(Context context, float pxValue) { 
    final float fontScale = context.getResources().getDisplayMetrics().scaledDensity; 
    return (int) (pxValue / fontScale + 0.5f); 



    /**
         * 将sp值转换为px值,保证文字大小不变
         */
    public static int sp2px(Context context, float spValue) { 
    final float fontScale = context.getResources().getDisplayMetrics().scaledDensity; 
    return (int) (spValue * fontScale + 0.5f); 

    }

  • 相关阅读:
    关于Java中的hashCode和equals方法
    web学习--java applets
    web学习——异步支持AsyncSupported
    关于Session的另外一个例子
    Web学习之Session
    Servlet过滤器-日志记录
    什么是XML?
    企业级应用和互联网应用的异同
    J2EE Map
    个人所犯错误总汇
  • 原文地址:https://www.cnblogs.com/xinanheishao/p/7011386.html
Copyright © 2011-2022 走看看