屏幕适配

首先理解下各个尺寸单位代表的意思

  • 尺寸含义

    1. px: 像素
    2. dip: Density-independent pixel 独立像素密度
    3. dpi: dot per inch 分辨率
    4. ppi: pixel per inch 指每英寸所拥有的像素

      ppi计算:(宽度的平方 + 高度的平方)开根号 / 对角线的长度
    5. Density: density值表示每英寸有多少个显示点,与分辨率是两个概念

      density计算:dpi / 160 密度值

各个单位之间的互换

  • 公式: dp = px / (dpi / 160) px = dp * (dpi / 160) dp = px / denisity or dp = px / (dpi / 160)

    • dpi: 是厂商定义的常量值 = 根据勾股定理开根除4

      ldpi: dpi 120 –> 240 * 320

      mdpi: dpi 160 –> 320 * 480

      hdpi: dpi 240 –> 480 * 800

      xhdpi: dpi 320 –> 720 * 1080 如:(720*720+1080*1080)开根号 除 4 = 320dpi

      xxhdpi:dpi 380 –>1080p 1920*1080 高清
    • px :手机像素 = dp * (dpi / 160)

      ldpi: 120px–> dp = 120 / (120 / 160) = 160dp

      mdpi: 160px–> dp = 160 /(160/160) = 160dp

      hdpi: 240px–> dp = 240 /(240/160) = 160dp

      xhdpi:360px–> dp = 360 / (320/160)= 180dp

    • densityDip:值表示每英寸有多少个显示点 = px / denisity

      QVGA: density=0.75 densityDpi=120 QVGA(240*320)

      HVGA:density=1.0 densityDpi=160 HVGA(320*480)

      VGA:density=1.0 densityDpi=160 VGA(480*640)

      WVGA:density = 1.5 densityDpi=240 WVGA(480*800)

      WQVGA:density=2.0 densityDpi=120 WQVGA(240*400)

      而当densityDip=160时,1dp=1px。

设计资源紧张怎么办?

在现在的App开发中,基本都会有iOS和Android版本,有些公司为了保持App不同版本的体验交互一致,还有些公司的设计资源可能比较紧张,这些情况下iOS和Android版本基本是一个设计师主导,而大多数情况下设计师可能更会以iPhone手机为基础进行设计,包括后期的切图之类的。这个时候身为Android开发人员你是否还要求设计师单独为Android端切一套图片资源呢?这会让你们的设计师崩溃的,下面就来告诉一个项目中总结的更棒的方法。

出一套图,有人肯定会觉得使用最新的iPhone6(6s和6的尺寸以及分辨率都一样)来做原型设计,而iPhone6的屏幕分辨率为1334×750, 屏幕尺寸为4英寸,根据勾股定理(a^2 + b^2 = c^2)1334^2+750^2, 然后再对其开根号可求出屏幕对角线的分辨率为:1530,除以4可得出iphone6的dpi:1530/4≈382 可以看出iPhone5的屏幕的dpi约等于380, 刚好属于xhdpi,但是好的产品一般是以用户群体来作标准的,不是所有人都用得起i6,用得起6p这些高清屏手机;

目前我们公司是以iPhone5(5s和5的尺寸以及分辨率都一样)来做原型设计,而iPhone5的屏幕分辨率为640X1164, 屏幕尺寸为4英寸,根据勾股定理算出iPhone5分辨率为:1328,dpi为:320, 刚好属于xhdpi; 并且xhdp在xxhdpi上的显示效果也相差不多;

xhdpi是目前最大市场

一般情况下只需要提供一套大的dpi的图片就ok了,现在市面手机分辨率最大可达到1080X1920的分辨率,如Nexus6p,2560×1440,dpi更是高于xxhdpi,但是毕竟还没普及,目前市面上最普遍的高端机的分辨率还多集中在720X1080范围,也就是多集中在xhdpi,所以目前来看xhpdi规格的图片成为了首选。当然随着技术规格的提高以后发展,以后可能市场上xxdpi的手机会越来越普遍,但这是后话。

  • .因此得出结果

    出图:效果图(主要就1套)

    xhdpi: 720 * 1280

图片的简单适配

  • 布局适配

    不同的手机的图片放到 对应的分辨率的目录下drawable-xxxx

    在layout的后面添加xxx,添加的布局名称要要一致

    ldpi: dpi 120 –> 240 * 320

    mdpi: dpi 160 –> 320 * 480

    hdpi: dpi 240 –> 480 * 800

    xhdpi: dpi 320 –> 720 * 1080

  • 动态的布局适配

    一般屏幕适配也有通过margin或者权重来去做屏幕的适配

android 屏幕适配,hdpi,xhdpi,xxhdpi理解,常见出图的更多相关文章

  1. 【原】android【手机】屏幕适配解决方案,完美适配适配hdpi,xhdpi,xxhdpi的做法。

    1.先说要怎么做,后面在慢慢讲解: 2.现在来讲解为什么要放这三套: 这三套其实按内容来说就两种,为什么这两种可以适配hdpi,xhdpi,xxhdpi呢? 那么两种类型的dimens就可以了,为什么 ...

  2. 【收藏】Android屏幕适配全攻略(最权威的Google官方适配指导)

    来源:http://blog.csdn.net/zhaokaiqiang1992 更多:Android AutoLayout全新的适配方式, 堪称适配终结者 Android的屏幕适配一直以来都在折磨着 ...

  3. Android屏幕适配全攻略(最权威的官方适配指导)(转),共大家分享。

    Android的屏幕适配一直以来都在折磨着我们这些开发者,本篇文章以Google的官方文档为基础,全面而深入的讲解了Android屏幕适配的原因.重要概念.解决方案及最佳实践,我相信如果你能认真的学习 ...

  4. Android屏幕适配全攻略(最权威的官方适配指导) (转)

    招聘信息: Cocos2d-X 前端主程 [新浪微博]手机客户端iOS研发工程师 20k-40k iOS 开发工程师 iOS高级开发工程师(中国排名第一的企业级移动互联网云计算公司 和创科技 红圈营销 ...

  5. 【转】Android屏幕适配全攻略(最权威的官方适配指导)

    原文网址:http://blog.csdn.net/jdsjlzx/article/details/45891551 Android的屏幕适配一直以来都在折磨着我们这些开发者,本篇文章以Google的 ...

  6. Android屏幕适配全攻略(最权威的官方适配指导)

    转载请注明出处:http://blog.csdn.net/zhaokaiqiang1992 Android的屏幕适配一直以来都在折磨着我们这些开发者,本篇文章以Google的官方文档为基础,全面而深入 ...

  7. android屏幕适配详解

    android屏幕适配详解 官方地址:http://developer.android.com/guide/practices/screens_support.html 一.关于布局适配建议 1.不要 ...

  8. Android屏幕适配全攻略(最权威的官方适配指导)

    摘自:http://www.cocoachina.com/android/20151030/13971.html Android屏幕适配出现的原因 在我们学习如何进行屏幕适配之前,我们需要先了解下为什 ...

  9. Android 屏幕适配:最全面的解决方案

    转自:https://www.jianshu.com/p/ec5a1a30694b 前言 Android的屏幕适配一直以来都在折磨着我们Android开发者,本文将结合: Google的官方权威适配文 ...

随机推荐

  1. PGM:部分观测数据

    http://blog.csdn.net/pipisorry/article/details/52599451 基础知识 数据缺失的三种情形: 数据的似然和观测模型 Note: MLE中是将联合概率P ...

  2. 一道有趣的Twitter技术面试题

    来自:http://blog.jobbole.com/50705/ 看下面这个图片” “在这个图片里我们有不同高度的墙.这个图片由一个整数数组所代表,数组中每个数是墙的高度.上边的图可以表示为数组[2 ...

  3. SQL Server 执行计划操作符详解(2)——串联(Concatenation )

    本文接上文:SQL Server 执行计划操作符详解(1)--断言(Assert) 前言: 根据计划,本文开始讲述另外一个操作符串联(Concatenation),读者可以根据这个词(中英文均可)先幻 ...

  4. Android View框架总结(九)KeyEvent事件分发机制

    请尊重分享成果,转载请注明出处: http://blog.csdn.net/hejjunlin/article/details/52335094 本篇开始分析按键消息事件分发(PS:本篇文章中源码均是 ...

  5. Xcode中不用Storyboard,用纯xib创建TabBar模式视图

    大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 如果要开发Tab类型视图的App,在Xcode中可以使用对应的 ...

  6. MyBatis Generator For Eclipse 插件安装

    由于在ORM框架MyBatis中,实现数据表于JavaBean映射时,配置的代码比较的复杂,所以为了加快开发的效率,MyBatis官方提供了一个Eclipse的插件, 我izuoyongjiushis ...

  7. Volley,小并发网络请求的好帮手

    不得不说,当不了解一件事情的时候,就会像当然的认为,其很神秘.但是当真正的接触到了这些神秘的item,就不会有这种感觉了.作为一个android开发新手的我,刚接触到了Volley这个开源的网络请求框 ...

  8. javascript之键盘事件

     键盘事件包含onkeydown.onkeypress和onkeyup这三个事件 事件初始化 function keyDown(){} document.onkeydown = keyDown; ...

  9. 网页搜索之后的APP搜索

    搜索技术是互联网最核心的技术之一.但是移动互联网迅猛发展的今天,互联网产生的数据已经不是简单的网页搜索所能涵盖的了.比如微信公众号,产生了许多优质的内容,如果这些公众号仅仅将这些内容发布到微信平台,那 ...

  10. Mybatis简单入门

    MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可以使用简单的XML或注解用 ...