`
wjlgryx
  • 浏览: 306697 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Android 密度转换

阅读更多
Android屏幕密度(Density)和分辨率的解释操作系统 2010-11-17 09:25:58 阅读128 评论0   字号:大中小 订阅
HVGA屏density=160;QVGA屏density=120;WVGA屏density=240;WQVGA屏density=120
density值表示每英寸有多少个显示点,与分辨率是两个概念。

不同density下屏幕 分辨率信息,以480dip*800dip的WVGA(density=240)为例

density=120时 屏幕实际分辨率为240px*400px (两个点对应一个分辨率)
状态栏和标题栏高各19px或者25dip
横屏是屏幕宽度400px 或者800dip,工作区域高度211px或者480dip
竖屏时屏幕宽度240px或者480dip,工作区域高度381px或者775dip

density=160时 屏幕实际分辨率为320px*533px (3个点对应两个分辨率)
状态栏和标题栏高个25px或者25dip
横屏是屏幕宽度533px 或者800dip,工作区域高度295px或者480dip
竖屏时屏幕宽度320px或者480dip,工作区域高度508px或者775dip


density=240时 屏幕实际分辨率为480px*800px (一个点对于一个分辨率)
状态栏和标题栏高个38px或者25dip
横屏是屏幕宽度800px 或者800dip,工作区域高度442px或者480dip
竖屏时屏幕宽度480px或者480dip,工作区域高度762px或者775dip


apk的资源包中,当屏幕density=240时使用hdpi标签的资源
当屏幕density=160时,使用mdpi标签的资源
当屏幕density=120时,使用ldpi标签的资源。
不加任何标签的资源是各种分辨率情况下共用的。
布局时尽量使用单位dip,少使用px
这是我最新的理解,请大家指正错误之处。

屏幕             宽度          高度           尺寸              大小        密度      
                                                                           
          Type           (Pixels)     (Pixels)   Range (inches)    Size    Group
                                                                          
          QVGA             240          320        2.6 - 3.0         Small       Low
          WQVGA         240          400        3.2 - 3.5         Normal     Low
          FWQVGA       240          432        3.5 - 3.8         Normal     Low
          HVGA             320          480        3.0 - 3.5         Normal     Medium
          WVGA           480          800        3.3 - 4.0         Normal     High
           FWVGA         480          854        3.5 - 4.0         Normal     High
          WVGA           480          800        4.8 - 5.5          Large      Medium
          FWVGA         480          854         5.0 - 5.8         Large      Medium

你可以从DisplayMetrics中取得有关展示的信息。
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
虽然Android不会使用直接的像素映射,它使用了独立的像素密度量化值,然后扩展实际的屏幕尺寸到这些独立的手工量化值。因此,密度的属性将是那些常量之一(120,160,或240 dpi)。
如果您需要的实际密度(对于一个OpenGL应用程序也许)你可以分别从横向和纵向得到它的xdpi和ydpi属性密度

这段代码应该可以:
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
int width = dm.widthPixels; //320
int height = dm.heightPixels; //480
获取dpi的代码:
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
// will either be DENSITY_LOW, DENSITY_MEDIUM or DENSITY_HIGH
int dpiClassification = dm.densityDpi;
// these will return the actual dpi horizontally and vertically
float xDpi = dm.xdpi;
float yDpi = dm.ydpi;

分享到:
评论

相关推荐

    Android像素转换dp转px或相反

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

    android dx和dp 像素和dp之间转换的工具类

    理解并正确使用`dp`单位以及像素与`dp`之间的转换,对于创建适应各种屏幕尺寸和密度的Android应用至关重要。通过这个工具类,开发者可以方便地在代码中进行这些转换,确保UI元素在不同设备上看起来大小一致。因此,...

    Android坐标转换.zip

    在Android开发中,坐标转换是一项重要的任务,尤其是在处理地图、触摸事件或者图形绘制时。Android系统使用了多种坐标系统,包括设备坐标系、屏幕坐标系、像素坐标系以及OpenGL坐标系等,这些坐标系在不同的场景下有...

    android Px,DP转换工具(可选择不同的dpi)

    通过使用这个"Android Px, DP转换工具",开发者可以更加轻松地处理与屏幕尺寸和密度相关的计算,从而优化应用的用户体验。无论是进行UI设计还是编写布局代码,这个工具都将是一个非常实用的助手。

    Android-Android将px值转换成dp

    此外,Android Studio提供了`convertPixelsToDp()`和`convertDpToPixels()`的辅助方法,可以直接在布局XML文件中进行像素单位与密度无关像素单位之间的转换。但这些方法仅适用于XML中的值,不适合在代码中动态计算。...

    android布局dpi批量转换工具

    Android系统根据DPI将屏幕分为多个类别:ldpi(低密度)、mdpi(中密度)、hdpi(高密度)、xhdpi(超高密度)、xxhdpi(双超高密度)和xxxhdpi(三超高密度)。不同DPI的设备会加载相应的资源,以保证界面在各种...

    Android dp和px/sp等单位相互转换

    在Android开发中,理解并掌握dp、px、sp等单位之间的转换是非常重要的,因为它们直接影响到界面元素在不同分辨率和像素密度设备上的显示效果。dp(density-independent pixels)是独立像素,px(pixels)是像素,sp...

    Android-gendpi根据屏幕密度生成适配的px尺寸

    gen_dpi工具的工作原理是接收开发者提供的基准尺寸(通常是mdpi),然后根据Android的密度转换规则,生成对应其他密度的资源。例如,如果你为mdpi提供了100px的宽度,gen_dpi会生成hdpi对应的133px、xhdpi对应的167...

    Android设计切图批量转换工具

    在Android平台上,不同的设备可能具有不同的屏幕密度,如低密度(ldpi)、中密度(mdpi)、高密度(hdpi)、超高密度(xhdpi)等。因此,设计师通常需要为每个屏幕密度提供相应比例的切图。批量转换工具允许用户将...

    Android-AndroidUnits用于在不同Android显示单位之间转换的工具类

    在Android开发过程中,由于屏幕尺寸和分辨率的多样性,开发者经常需要在不同的显示单位之间进行转换,以确保应用的界面元素在各种设备上显示一致。"AndroidUnits" 是一个专门为此目的设计的工具类,它提供了方便的...

    Android多分辨率多密度下UI适配方案.

    Android 多分辨率多密度下 UI 适配方案 Android 设计之初就考虑到了 UI 在多平台的适配,它本身提供了一套完善的适配机制,随着版本的发展适配也越来越精确。UI 适配主要受平台两个因素的影响:屏幕尺寸(屏幕的...

    SVG转Android VectorDrawable工具

    因此,在实际开发中,建议对转换后的结果进行测试,以确保在不同设备和屏幕密度下的显示效果。 总的来说,"SVG转Android VectorDrawable工具"提供了一种方便快捷的方式,帮助开发者将SVG图形资源引入Android项目,...

    android dp和px之间转换

    ### Android DP和PX之间的转换 在Android开发过程中,经常需要处理不同屏幕尺寸和密度下的UI适配问题。其中,DP(Density-independent Pixel)和PX(Pixel)是两种常见的单位,它们之间的转换对于实现良好的跨设备...

    Android常用共通工具类,包括dp与px转换,获取屏幕密度,获取versionName和versionCode,获取网络连接状态等等。

    Android常用共通工具类,包括dp与px转换,获取屏幕密度,获取versionName和versionCode,获取网络连接状态等等。

    android开发之dip,dp与px像素之间的转换工具,

    在Android开发中,理解和使用dip(设备独立像素)、dp(密度无关像素)以及px(像素)是非常重要的,因为它们关系到应用在不同分辨率屏幕上的显示效果。本篇将详细介绍这三个概念及其相互转换。 首先,像素(px)是...

    Android-IKA9PNG任意大小转换工具

    3. **资源管理**:在Android Studio中,9PNG资源通常放在`res/drawable`目录下,并且有相应的hdpi、mdpi、xhdpi、xxhdpi、xxxhdpi等不同密度的版本,以适应不同分辨率的设备。 4. **工具支持**:Android Studio内置...

    dimens资源文件实现px值与dp值、sp值之间的转化

    总结起来,`dimens`资源文件在Android开发中扮演着至关重要的角色,它帮助我们实现像素与密度独立单位之间的转换,使得UI设计能够在各种屏幕尺寸和密度的设备上保持良好的视觉一致性。通过合理使用`dimens.xml`,...

    Android-Brotli压缩算法Android库

    Brotli 是一个通用的无损压缩算法,它使用了 LZ77 算法的现代变体、Huffman 编码和二阶上下文建模的结合来压缩...在速度上它与 deflate 算法类似,但提供了更高的数据密度。Brotli 压缩的数据格式在 RFC 7932 中定义。

    Android studio 小案例

    - Android Studio拥有丰富的插件生态系统,如Butter Knife(视图注入)、GsonFormat(JSON到Java对象转换)、Material Design Icon Generator(生成Material Design图标)等,可扩展其功能。 通过这个"Android ...

    Android设备中获取屏幕相关参数

    在Android开发中,我们通常使用DP作为设计尺寸,然后由系统根据设备的密度转换为PX。转换公式如下: ```java PX = DP * (Density / 160) ``` 其中,Density是设备的DPI值,160是MDPI的基准值。相反,从PX到DP的...

Global site tag (gtag.js) - Google Analytics