`

android ui的几个概念:px,dip(dp),sp,dpi,分辨率等

阅读更多

android ui的几个概念:px,dip(dp),sp,dpi,分辨率等

 

1.px (pixels)像素 – 是像素,就是屏幕上实际的像素点单位。
 dip或dp (device independent pixels)设备独立像素, 与设备屏幕有关。
 sp (scaled pixels — best for text size):类似dp, 主要处理字体的大小。

dpi(dot per inch):屏幕像素密度,每英寸多少像素

density:density表示每英寸有多少个显示点(逻辑值),它的单位是dpi

2.dpi是屏幕像素密度。就是1英寸上像素点的个数。对于屏幕来说,dpi越大,屏幕的精细度越高,屏幕看起来就越清楚。比如iphone4的视网膜级的屏幕肯定比iphone 3gs的屏幕像素密度高的多。

3.sp由于是放大像素,主要是用于字体显示,由此根据google的建议,TextView的字体大小最好用sp做单位

4.dp是与密度无关,sp除了与密度无关外,还与scale无关。如果屏幕密度为160,这时dp和sp和px是一样的。1dp=1sp=1px,但如果使用px作单位,如果屏幕大小不变(假设还是3.2寸),而屏幕密度变成了320。那么原来TextView的宽度设成160px,在密度为320的3.2寸屏幕里看要比在密度为160的3.2寸屏幕上看短了一半。但如果设置成160dp或160sp的话。系统会自动将width属性值设置成320px的。也就是160 * 320 / 160。其中320 / 160可称为密度比例因子。也就是说,如果使用dp和sp,系统会根据屏幕密度的变化自动进行转换。 

5.dip值 =(dpi值/160)* pixel值

6.像素密度和分辨率是两个不同的概念,分辨率是总的像素点,像素密度是单位长度的像素点

HVGA屏density=160;QVGA屏density=120;WVGA屏density=240;WQVGA屏density=120

 

VGA:Video Graphics Array,即:显示绘图矩阵,相当于640×480 

 

 

HVGA:Half-size VGA;即:VGA的一半,分辨率为480×320;

QVGA:Quarter VGA;即:VGA的四分之一,分辨率为320×240;

WVGA:Wide Video Graphics Array;即:扩大的VGA,分辨率为800×480像素;

WQVGA:Wide Quarter VGA;即:扩大的QVGA,分辨率比QVGA高,比VGA低,一般是:400×240,480×272

 

public class DisplayUtilHelper {  
        /** 
         * 将px值转换为dip或dp值,保证尺寸大小不变 
         *  
         * @param pxValue 
         * @param scale 
         *            (DisplayMetrics类中属性density) 
         * @return 
         */  
        public static int px2dip(Context context, float pxValue) {  
            final float scale = context.getResources().getDisplayMetrics().density;  
            return (int) (pxValue / scale + 0.5f);  
        }  
      
        /** 
         * 将dip或dp值转换为px值,保证尺寸大小不变 
         *  
         * @param dipValue 
         * @param scale 
         *            (DisplayMetrics类中属性density) 
         * @return 
         */  
        public static int dip2px(Context context, float dipValue) {  
            final float scale = context.getResources().getDisplayMetrics().density;  
            return (int) (dipValue * scale + 0.5f);  
        }  
      
        /** 
         * 将px值转换为sp值,保证文字大小不变 
         *  
         * @param pxValue 
         * @param fontScale 
         *            (DisplayMetrics类中属性scaledDensity) 
         * @return 
         */  
        public static int px2sp(Context context, float pxValue) {  
            final float fontScale = context.getResources().getDisplayMetrics().scaledDensity;  
            return (int) (pxValue / fontScale + 0.5f);  
        }  
      
        /** 
         * 将sp值转换为px值,保证文字大小不变 
         *  
         * @param spValue 
         * @param fontScale 
         *            (DisplayMetrics类中属性scaledDensity) 
         * @return 
         */  
        public static int sp2px(Context context, float spValue) {  
            final float fontScale = context.getResources().getDisplayMetrics().scaledDensity;  
            return (int) (spValue * fontScale + 0.5f);  
        }  
  }  

 

分享到:
评论

相关推荐

    引用 Android上dip、dp、px、sp等单位说明

    在Android开发中,为了确保应用在不同分辨率和屏幕尺寸上的显示效果一致,开发者需要掌握几种关键的尺寸单位,包括dip(或dp)、px、sp以及它们之间的转换关系。 #### 1. dip(dp) **dip**(device-independent ...

    Android的计量单位px,in,mm,pt,dp,dip,sp

    例如,对于一个480dip*800dip的WVGA屏幕(density=240),在120dpi的屏幕上,实际分辨率为240px*400px,而在240dpi的屏幕上,实际分辨率为480px*800px。为了适配这些不同密度的屏幕,开发者需要在APK资源包中提供...

    Adnroid 中dip、dp、px、sp等单位说明

    让我们深入探讨一下Android中的dip、dp、px、sp等单位。 1. dip (device independent pixels) - 设备独立像素: 这是一种基于设备的物理特性(如屏幕密度)的抽象单位,旨在确保UI元素在不同分辨率的屏幕上看起来...

    Android像素转换dp转px或相反

    在Android开发中,像素(px)和密度独立像素(dp/dip)是两个重要的尺寸单位。理解它们之间的转换关系对于创建适配不同设备屏幕的UI至关重要。本文将深入探讨Android像素转换,包括dp转px以及px转dp的方法,并提供...

    Android中dip、dp、sp、pt和px的区别详解

    本文主要解析Android中的五个关键单位:dip、dp、sp、pt和px,以及它们之间的区别。 1. **dip(设备独立像素)**: 设备独立像素是一种与设备硬件无关的单位,它的大小会根据设备的物理密度进行调整,确保在不同...

    计算手机屏幕宽高工具

    Android系统将屏幕密度分为几个等级:ldpi(低密度)、mdpi(中密度,基准密度)、hdpi(高密度)、xhdpi(超高清密度)等,以便于资源的适配。 像素(px)是屏幕上的最小显示单位,每个像素对应一个颜色点。在编程...

    屏幕密度与分辨率

    Android系统中定义了几种标准的屏幕密度:ldpi(低密度,~120dpi)、mdpi(中密度,~160dpi)、hdpi(高密度,~240dpi)、xhdpi(超高密度,~320dpi)等。屏幕密度对于控制UI元素大小至关重要,因为它决定了一个“点...

    Android针对不同的手机屏幕大小设计图片资源与编码

    这里主要涉及几个关键概念:屏幕尺寸、屏幕密度、分辨率、DP(密度无关像素)、屏幕长宽比以及Android资源文件的组织。 1. **屏幕尺寸**:根据屏幕的对角线长度,Android将屏幕尺寸分为small、normal、large和extra...

    android 象素区别

    在Android开发中,常见的像素单位有px(pixels)、dip(device-independent pixels)、sp(scaled pixels)等,这些单位各有特点,适用于不同的场景。 - **px (Pixels)**:像素是屏幕显示的基本单位,一个像素通常...

    基于Android中dp和px之间进行转换的实现代码

    如上文提到的`DensityUtil`类,它提供了两个静态方法,`dip2px`和`px2dip`,分别用于dp到px和px到dp的转换。 1. `dip2px`方法的工作原理: - 接收一个Context对象和需要转换的dp值。 - 通过`getResources()....

    Android屏幕大小和精度

    Android系统采用密度独立像素(DIP或dp)作为单位,使得开发者可以编写不依赖具体像素密度的代码,确保UI元素在不同设备上保持相对一致的大小。 二、术语和概念 1. 屏幕尺寸:屏幕尺寸通常指对角线长度,用于区分...

    Android dip,px,pt,sp 的区别详解

    以下是关于Android中dip, px, pt, sp的区别详解: 1. dip(设备独立像素,Device Independent Pixels):dip是一种抽象单位,旨在确保在不同密度的屏幕上元素看起来具有相同的大小。它不直接对应于物理像素,而是...

    Android手机屏幕px与dp互转的工具类

    本文将详细讨论Android中像素(px)、设备独立像素(dp)以及可缩放像素(sp)的概念,并提供一个用于屏幕像素与设备独立像素之间转换的工具类。 首先,我们需要理解像素(Pixels, px)的概念。像素是屏幕上的最小显示单元...

    android xml 布局像素问题

    本文将深入探讨Android中四个主要的像素单位:dip, dp, px, 和 sp,并解释它们的区别以及如何在实际开发中正确使用。 1. **dip (设备独立像素)**: 设备独立像素是一种不依赖于物理像素的单位,它的大小会根据设备的...

    简单谈谈Android中SP与DP的区别

    SP和DP是两种常用的单位,它们在处理屏幕尺寸和分辨率时起着至关重要的作用。本文将深入探讨这两种单位的区别,以及它们在实际应用中的意义。 首先,DP(Density Independent Pixels)或dip,是一种基于屏幕密度的...

    Android的分辨率和屏幕适配详解

    1. **密度无关像素(DP/DIP)**:基于基准密度(1dp在mdpi设备上等于1px),用于创建与密度无关的UI元素,确保在不同密度的屏幕上大小一致。 2. **字体大小(SP)**:与DP类似,但用户可以调整字体大小,主要用于...

Global site tag (gtag.js) - Google Analytics