dp与px的相互转化

import android.content.Context;

注意!!
   我们在代码中写空间的宽高大小 都是以px(像素为单位)
   这样的话 在不同分辨率的手机上的显示效果就不一样了
   所以需要转换为dip(即dp dp在不同的分辨率的手机上会转化为对应的像素,
                  这样一来 在不同的手机上显示的效果都是一样的)

public class DensityUtil {
    /**
     * 根据手机的分辨率从 dip 的单位 转成为 px(像素)
     */
    public static int dip2px(Context context, float dpValue) {
        final float scale = context.getResources().getDisplayMetrics().density;
        return (int) (dpValue * scale + 0.5f);
    }

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

时间: 2024-10-23 04:19:01

dp与px的相互转化的相关文章

关于android的单位dp与px

原文:Android中dp和px之间进行转换 官方文档:http://developer.android.com/guide/practices/screens_support.html The density-independent pixel is equivalent to one physical pixel on a 160 dpi screen, which is the baseline density assumed by the system for a "medium&quo

Android程序猿如何泡设计妹之快速掌握dp和px才可以

相信很多Android程序猿已经对身边的设计妹垂涎三尺了,那么如何博得设计妹的好感呢,学好这篇文章就可以了. 程序猿与UI设计妹讨论设计稿和切图的时候,经常会因为dp和px的问题搞的不愉快,这里可以分析出两个原因: 1,程序猿原因,不懂dp和px的换算关系.包括我,以及我见到的大多数开发,更多的时候其实不是很关心dp和px是如何来的,以及如何转换的,只知道掌握一般情况用dp,字体大小用sp,画线用px. 2,设计妹原因,设计不出dp标注,或者甚至就不懂dp是什么东东.大多数公司并不会为Andro

android: android中dip、dp、px、sp和屏幕密度

android中dip.dp.px.sp和屏幕密度 转自:http://www.cnblogs.com/fbsk/archive/2011/10/17/2215539.html 1. dip: device independent pixels(设备独立像素). 不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA.HVGA和QVGA 推荐使用这    这个,不依赖像素. 这里要特别注意dip与屏幕密度有关,而屏幕密度又与具体的硬件有关,硬件设置不正确,有可能导致dip不能正常

Android系统中的dp和px的转换

android系统中DP和SP的转化:1.首先分析TypedValue.java 可以调用以下代码获得dp的值 TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 20,getResources().getDisplayMetrics()); public static float applyDimension(int unit, float value,DisplayMetrics metrics) { switch (unit) {

Android 多屏幕适配 dp和px的关系

一直以来别人经常问我,android的多屏幕适配到底是怎么弄,我也不知道如何讲解清楚,或许自己也是挺迷糊. 以下得出的结论主要是结合官方文档进行分析的https://developer.android.com/guide/practices/screens_support.html android由于碎片化太严重,而导致市面上出现非常多的种类尺寸手机设备,当然也包括非常奇葩的分辨率手机.所以我们在布局的时候使用px作为单位显然不能很好的做到多屏幕的适配.其实在官方文档中有介绍一种解决多屏幕适配的

Android中dip(dp)与px之间单位转换 dip2px dp转px 无context算法(以及获取获取屏幕宽度和高度)

废话不多说直接上代码: 1.dip2px  dp转px  无context算法 public static int px2dip(int pxValue) { final float scale = Resources.getSystem().getDisplayMetrics().density; return (int) (pxValue / scale + 0.5f); } public static float dip2px(float dipValue) { final float s

Android 中dp和px

dp是虚拟像素,在不同的像素密度的设备上会自动适配,比如: 在320x480分辨率,像素密度为160,1dp=1px 在480x800分辨率,像素密度为240,1dp=1.5px 计算公式: 1dp*像素密度/160 = 实际像素数 float density = context.getResources().getDisplayMetrics().density; px = (int)(dp * scale + 0.5f); dp = (int)(px / scale + 0.5f);

dp和px的转化

一.首先要认识下:屏幕密度ppippi  pixles percent inch  每英寸的像素数ppi = 水平方向的像素数 / 屏幕宽度 例如:3.7in   480 x 800         3.7 * 3.7 = 3x*3x + 5x * 5x  宽度: 3 * 0.63 = 1.89    PPI ?  480 / 1.89 = 254 规定:ppi是160,标准屏幕密度   mdpi          240    hdpi          二.dp和px的转化dp和px换算公式

Android上dip、dp、px、sp等单位说明(转)

dip  device independent pixels(设备独立像素). 不同设备不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA.HVGA和QVGA 推荐使用这个,不依赖像素. 在android上开发的程序将会在不同分辨率的手机上运行.为了让程序外观不至于相差太大,所以引入了dip的概念.比如定义一个矩形10 x 10dip.在分辨率为160dpi的屏上,比如G1,正好是10 x 10像素.而在240 dpi的屏,则是15 x 15像素.换算公式为pixs = dips *