Android 长度单位dp , sp ,px总结

Android 长度单位dp , sp ,px总结

 

1  px:是屏幕的像素点。

 

2 dp:一种基于屏幕密度的抽象单位,英语全称:device independent pixcel。设备独立像素。

解释:

  •  dpi(dot per inch)是屏幕像素密度,就是1英寸上像素点的个数。针对一部手机dpi一定的。dpi越高,屏幕越清晰。在屏幕物理尺寸一样大时,分辨率越大,就是dpi越大。[代码中:getDeviceDensityDpi]
  • 如dpi =160时,dp和px是一样的,1dp = 1px。
  • px =dpi/160* dp 
  • landroid系统定义了四种像素密度:低(120dpi)、中(160dpi)、高(240dpi)和超高(320dpi)。
  • density = dpi / 160 【代码中:getDeviceDensity

 

3. sp(Scale-independentPixel):与dp类似,主要用于设置字体大小。但是可以根据用户的字体大小首选项进行缩放。【 与代码中的getDeviceScaledDensity相关 】


package cn.wonder.utils;

import android.content.Context;

public class DeviceParam
{
    public static int getScreenWidthPx(Context mContext)
    {
        int widthPixels = mContext.getResources().getDisplayMetrics().widthPixels;
        return widthPixels;
    }
    
    public static int getScreenHeightPx(Context mContext)
    {
        int heightPixels = mContext.getResources().getDisplayMetrics().heightPixels;
        return heightPixels;
    }
    
    public static float getDeviceDensity(Context mContext)
    {
        float density= mContext.getResources().getDisplayMetrics().density;
        return density;
    }
    
    public static float getDeviceScaledDensity(Context mContext)
    {
        float sDensity= mContext.getResources().getDisplayMetrics().scaledDensity;
        return sDensity;
    }
    
    
    public static int getDeviceDensityDpi(Context mContext)
    {
        int dpi= mContext.getResources().getDisplayMetrics().densityDpi;
        return dpi;
    }
    
    /**
     * dp 转换成  px
     * @param context
     * @param dipValue
     * @return
     */
    public static int dip2px(Context context, float dipValue) {  
        final float scale = context.getResources().getDisplayMetrics().density;  
        return (int) (dipValue * scale + 0.5f);  
    }  
    
    /**
     * px 转换成  dp
     * @param context
     * @param pxValue
     * @return
     */
    public static int px2dip(Context context, float pxValue) {  
        final float scale = context.getResources().getDisplayMetrics().density;  
        return (int) (pxValue / scale + 0.5f);  
    }  
   
}

http://blog.csdn.net/wang_jing_2008

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值