`

关于Android的nodpi,xhdpi,hdpi,mdpi,ldpi

 
阅读更多

首先是几个基本概念:

1.屏幕尺寸Screen size

即显示屏幕的实际大小,按照屏幕的对角线进行测量。

为简单起见,Android把所有的屏幕大小分为四种尺寸:小,普通,大,超大(分别对应:small, normal, large, and extra large).

应用程序可以为这四种尺寸分别提供不同的自定义屏幕布局-平台将根据屏幕实际尺寸选择对应布局进行渲染,这种选择对于程序侧是透明的。

2.屏幕长宽比Aspect ratio

长宽比是屏幕的物理宽度与物理高度的比例关系。应用程序可以通过使用限定的资源来为指定的长宽比提供屏幕布局资源。

 

3.屏幕分辨率Resolution

在屏幕上显示的物理像素总和。需要注意的是:尽管分辨率通常用宽x高表示,但分辨率并不意味着具体的屏幕长宽比。

在Andorid系统中,应用程序不直接使用分辨率。

4.密度Density

根据像素分辨率,在屏幕指定物理宽高范围内能显示的像素数量。

在同样的宽高区域,低密度的显示屏能显示的像素较少,而高密度的显示屏则能显示更多的像素。

屏幕密度非常重要,因为其它条件不变的情况下,一共宽高固定的UI组件(比如一个按钮)在在低密度的显示屏上显得很大, 而在高密度显示屏上看起来就很小。

为简单起见,Android把所有的屏幕分辨率也分为四种尺寸:小,普通,大,超大(分别对应:small, normal, large, and extra large).

应用程序可以为这四种尺寸分别提供不同的资源-平台将透明的对资源进行缩放以适配指定的屏幕分辨率。

5.设备独立像素Density-independent pixel (dp)

应用程序可以用来定义UI组件的虚拟像素单元,通过密度无关的方式来描述布局尺寸和位置。

一个设备独立像素相当于一个160 dpi屏幕上的物理像素。

在程序运行时,系统根据屏幕的实际密度透明的处理任何需要缩放的设备独立像素单元,设备独立像素转换成屏幕实际像素的换算很简单:pixels = dps * (density / 160).

例如在240 dpi的屏幕上,1个设备独立像素等于1.5物理像素.为确保UI组件在不同的屏幕都能合适的展示,强烈建议使用设备独立像素单元来定义你的应用程序UI。

四种屏幕尺寸分类:: small, normal, large, and xlarge

四种密度分类: ldpi (low), mdpi (medium), hdpi (high), and xhdpi (extra high)

需要注意的是: xhdpi是从  Android   2.2 (API Level 8)才开始增加的分类.

xlarge是从Android 2.3 (API Level 9)才开始增加的分类.

DPI是“dot per inch”的缩写,每英寸像素数。

一般情况下的普通屏幕:ldpi是120,mdpi是160,hdpi是240,xhdpi是320。

参考:http://developer.android.com/images/screens_support/screens-ranges.png

两种获取屏幕分辨率信息的方法:

DisplayMetrics metrics = new DisplayMetrics();

Display display = activity.getWindowManager().getDefaultDisplay();

display.getMetrics(metrics);

//这里得到的像素值是设备独立像素dp

//DisplayMetrics metrics=activity.getResources().getDisplayMetrics(); 这样获得的参数信息不正确,不要使用这种方式。

不能使用android.content.res.Resources.getSystem().getDisplayMetrics()。这个得到的宽和高是空的。

 

如果需要为Android pad定制资源文件,则res目录下的目录可能为:

drawable

drawable-ldpi

drawable-mdpi

drawable-hdpi

drawable-xhdpi

drawable-nodpi

drawable-nodpi-1024×600

drawable-nodpi-1280×800

drawable-nodpi-800×480

values

values-ldpi

values-mdpi

values-hdpi

values-xhdpi

values-nodpi

values-nodpi-1024×600

values-nodpi-1280×800

values-nodpi-800×480

分享到:
评论
2 楼 王雪龙 2014-04-25  
pixels = dps * (density / 160).
这个公式公式有问题吧
应该是
pix = dp *(dpi/160)
density = spi/160;
1 楼 boyuan2000cn 2013-04-17  
你好,我转载了您的此篇博客,如果有版权问题,请告诉我,谢谢!转载地址
http://blog.csdn.net/peter2000cn/article/details/8813006

相关推荐

    Android设备密度计算器

    输入手机或平板的分辨率和尺寸即可自动计算其密度,以及其他配置: small normal large xlarge ldpi mdpi hdpi xhdpi xxhdpi nodpi

    android4.4 kk 电量图标横屏和竖屏

    开发者需要为不同密度(ldpi, mdpi, hdpi, xhdpi, xxhdpi等)、屏幕尺寸(small, normal, large, xlarge等)以及语言和地区提供相应的资源。在本例中,横屏和竖屏的 BatteryMeterView 图片属于不同的屏幕尺寸资源,...

    Bitmapfun(Google Deamon)

    Android 支持多种屏幕密度(hdpi、ldpi、mdpi、xhdpi、nodpi等),每个目录下的图片适用于相应密度的设备,确保在各种屏幕尺寸下都能保持良好的视觉效果。 3. `res/layout` 目录:包含应用的界面布局文件(XML 格式...

    android 总结

    Android将密度分为ldpi(低),mdpi(中),hdpi(高)和xhdpi(额外高)。不同的密度需要相应的资源调整,以确保UI元素在不同设备上视觉效果一致。 5. **设备独立像素(dp)**:设备独立像素是一种虚拟像素单位,...

    android屏幕适配

    Android系统将屏幕主要分为四大类:ldpi(低密度),mdpi(中密度),hdpi(高密度),xhdpi(超高密度),以及更高级别的xxhdpi、xxxhdpi等。这些分类是基于屏幕像素密度(ppi)来划分的,每种类型都有其对应的基准...

    关于Android中drawable必知的一些规则

    首先,Android系统支持多种屏幕密度,这包括ldpi(低密度)、mdpi(中等密度)、hdpi(高密度)、xhdpi(超高密度)、xxhdpi(超超高密度)以及xxxhdpi(超超超高密度)。每种密度对应不同的像素密度,例如mdpi是160...

    Android支持多种设备的方法及资源文件的使用

    - **特殊情况**: 如果应用程序的`minSdkVersion`设置为4或者更高版本,可以仅提供带有屏幕密度限定符(例如:`ldpi`, `mdpi`, `hdpi`, `xhdpi`, `nodpi`, `tvdpi`)的替代资源,而无需提供默认的`drawable`资源。...

    android多分辨率适配 ,判断平板还是手机,等比例缩小图片.zip

    - 使用比例缩放的图片:在`res/drawable-nodpi`、`res/drawable-mdpi`、`res/drawable-hdpi`等目录下放置不同倍率的图片,系统会自动选择适合当前设备的图片。 2. **判断设备类型**: - 判断是否为平板,可以检查...

    com.google.android.gsf_13-33_minAPI33(nodpi)_apkmirror.com.apk

    com.google.android.gsf_13-33_minAPI33(nodpi)_apkmirror.com.apk

    Android目录结构和程序的执行流程

    - **res/drawable**:存放图像资源,通常分为`drawable-hdpi`、`drawable-mdpi`和`drawable-ldpi`,分别对应不同分辨率的设备。 - **res/layout**:存放XML布局文件,定义了用户界面的布局结构。 - **res/values*...

    中国象棋开发图片包

    此外,考虑到手机屏幕的多样性,可能还需要提供不同尺寸的图片以适应不同的屏幕密度(ldpi, mdpi, hdpi, xhdpi, xxhdpi, xxxhdpi)。 在Android Studio中,开发者可以利用资源管理器(Res)将这些图片按类型和用途...

    android 的宽高限定符适配

    此外,Android还提供了“nodpi”、“hdpi”、“xhdpi”、“xxhdpi”和“xxxhdpi”等密度限定符,用于图片和其他非布局资源的适配。这些密度桶确保了在不同像素密度的屏幕上,资源的视觉大小保持一致。开发者应该提供...

    com.google.android.webview_79.0.3945.93-394509365_minAPI21(x86)(nodpi).apk

    安卓内置的浏览器内核,适用于x86构架,如:华硕ze551ml....,最低系统要求安卓5.0.........................................................................................................................

    android.autoinstalls.config.sony.xperia_1.0-1_minAPI23(nodpi)_apkmirror.com.apk

    android.autoinstalls.config.sony.xperia_1.0-1_minAPI23(nodpi)_apkmirror.com.apk

    com.android.chrome_76.0.3809.89-380908915_minAPI19(x86)(nodpi)_apkmirror.com.apk

    com.android.chrome_76.0.3809.89-380908915_minAPI19(x86)(nodpi)_apkmirror.com

    com.google.android.gms_19.4.20_(100400-271418971)-19420037_minAPI28(nodpi)

    Google Play Services,对于一些需要Google Play Services的APP有用,从APKMIrror中搬运过来的

    com.google.android.gms19.2.75.zip

    这个压缩包是Google提供的Android平台上的核心服务组件之一,它包含了用于支持各种Google服务和应用运行所需的库和API。 描述中提到的"google套件",通常包括Google Play服务、Google Play商店、Google账户管理等...

    Android图片加载&使用介绍

    Android 应用中的图片资源通常存储在 `drawable-` 后跟特定密度的文件夹中,例如 `drawable-mdpi`、`drawable-xxxhdpi` 等。正确地放置图片资源可以帮助应用更好地适应不同的屏幕密度。 ##### 3.1 不同密度文件夹的...

    三星商店国际版_4.5.41.8-454108110_minAPI23(nodpi)_apkmirror.com.apk

    三星商店国际版_4.5.41.8-454108110_minAPI23(nodpi)_apkmirror.com.apk

    安卓android_Chrome_X86_56版

    【Android Chrome X86_56版】是专为基于X86架构的安卓设备设计的一款浏览器应用。在安卓平台上,大多数应用都是针对ARM架构优化的,因此对于使用Intel或AMD处理器的X86设备来说,找到兼容的软件可能会有些挑战。这个...

Global site tag (gtag.js) - Google Analytics