文档章节

Android屏幕适配基础

k
 kim366
发布于 2016/05/13 19:11
字数 2138
阅读 1
收藏 0
点赞 2
评论 0

屏幕相关分辨率DPI, PPI

DPI表示分辨率,指每英寸长度上的点数。DPI又可细分为水平分辨率和垂直分辨率,例如一张1英寸*1英寸的图片,如果它的水平分辨率是100 dpi,垂直分辨率是50 dpi,那么就是说,它水平每英寸分成100小段,垂直每英寸分成50小段,就像 米尺 上的一格格那样.这张图总共有100*50=5000个格子,这张图片共有5000像素.由于它的水平分辨率和垂直分辨率不相等,所以每个像素是一个微小的长方形。
所以像素实际上是一个面积的概念,而因为一般电脑/数码相机等生产出来的图片都是水平分辨率和垂直分辨率相等,每个像素是个微小的正方形,所以就讲成"DPI表示每英寸长度上的像数数目",其实就是"每英寸长度上的点数"了. 

每个像素的面积大小由生产工艺决定,工艺越高,每个像素面积越小,每平方英寸屏幕上就能容纳更多的像素,dpi值就越高,图像就越精细,像素小到人眼分辨不出的地步了,图像看起来就跟实际的没有分别了. 

数码相机的"多少多少万像素"的概念就是这样来的,比如说,一个相机最大可以拍出1600像素*1200像素的相片,它的像素值就是1600*1200=192万,约等于200万,这就是一台200万像素的数码相机了.

于是问题中所讲的300 dpi就表示屏幕上水平和垂直的方向上每英寸的长度上都有300个点.这台机屏幕的实际高度要用像素数目和dpi结合起来算才能得出.对于这台机子,400像素就是400/300=1.33英寸,533像素就是533/300=1.78英寸.

对于一张电脑照片,你可以在photoshop的“图像”--“图像大小”菜单那里改它的分辨率,默认是72,改小了就是缩小图片,改大了就是放大图片(图像质量有损失),其实就是放大缩小的效果而已,要说真正的影响,就是对一些要求分辨率高的图像打印输出场合的影响。你可以打开“文件”--“打印选项”菜单查看打印预览。

(附:1 inch 英寸=25.4 millimetres 毫米)
http://zhidao.baidu.com/question/6994646.html

PPI与DPI是什么意思?它们有什么不同
PPI(Pixel Per Inch)是图像分辨率所使用的单位,意思是:在图像中每英寸所表达的像素数目。从输出设备(如打印机)的角度来说,图像的分辨率越高,所打印出来的图像也就越细致与精密。
DPI(Dot Per Inch)是打印分辨率使用的单位,意思是:每英寸所表达的打印点数。

打印机分辨率(DPI)
打印机的分辨率是指打印机在每英寸所能打印的点数(Dot Per Inch)即打印精度(DPI),这是衡量打印质量的一个重要标准,也是一个判断打印机分辨率的基本指标。一般的家庭用户和中小型办公用户使用的打印机的分辨率应至少达到300DPI——720DPI之间,但DPI指标不是越大越好。
打印机的打印尺寸与图像分辨率有很大的关系,只要图像分辨率改变了,打印的尺寸便会跟着发生改变。换言之,打印的尺寸无法客观地描述图像的大小。想要描述图像的大小,最好的方法还是以该图像的"宽×高"的像素值加以表示,例如:360×720 Pixels。而相乘的最后结果就是该图像的像素多寡。打印尺寸、图像大小与分辨率之间的关系可以利用下列的计算公式加以表示:图像的大小=图像的分辨率×打印的尺寸,图像的大小/图像的分辨率=打印的尺寸。针对特定的图像而言,图像的大小是固定的,所以,分辨率和打印尺寸便呈现反比的关系。

数码相机分辨率(PPI)
数码相机的分辨率通常指的是感光设备(一般是CCD,电荷耦合器件)有效的图像获取像素值,只要拥有足够的像素值,在完成照相之后,便可以借助图像分辨率的调整,得出够成像质量较好的成品,因此,数码相机的分辨率通常用像素的多少来代表。同样地,数码相机的分辨率也无法保证图像的品质,就现在的3百万像素等级的数码相机来看,各品牌之间的CCD大小分辨率大小、镜头质量、聚焦功能……都不尽相同,因此,即使都是3百万像素的数码相机,所得到的图像也有所差距。从整体上说,目前所设计的相机性能都较为优越,图像解析力较好,成像效果也较好,剩下的品质往往取决于使用者的技术问题了。和扫描仪非常类似的是,数码相机也有所谓的"软件插值分辨率",因此,要分辨数码相机真实的分辨率时,首先要看CCD的分辨率,再来看拍摄成品的相机分辨率。如果CCD和相机分辨率不同,那肯定是使用软件插值得出的成果。另外,对于数码相机而言,其光学镜头的解析能力一定要优于感光CCD的分辨率,而CCD的获取像素值,一定要大于最后的有效图像分辨率。


关于android的单位dp,dip

  • 摘要

          本文介绍了android单位dp,dip的概念,并给出了它的确切含义。

  • 概述

          Android中,dp是Density-independent Pixels简写,而dip则是Density Independent Pixels,实际上指的是一个概念,都是Android的单位。在文档More Resource Types中有描述:

dp
        Density-independent Pixels - An abstract unit that is based on the physical density of the screen. These units are relative to a 160 dpi (dots per inch) screen, on which 1dp is roughly equal to 1px. When running on a higher density screen, the number of pixels used to draw 1dp is scaled up by a factor appropriate for the screen's dpi. Likewise, when on a lower density screen, the number of pixels used for 1dp is scaled down. The ratio of dp-to-pixel will change with the screen density, but not necessarily in direct proportion. Using dp units (instead of px units) is a simple solution to making the view dimensions in your layout resize properly for different screen densities. In other words, it provides consistency for the real-world sizes of your UI elements across different devices.

         单位px代表的是像素,它和ds的转换公式在文档Supporting Multiple Screens中也有描述:

Density-independent pixel (dp)
        A virtual pixel unit that you should use when defining UI layout, to express layout dimensions or position in a density-independent way.
        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" density screen. At runtime, the system transparently handles any scaling of the dp units, as necessary, based on the actual density of the screen in use. The conversion of dp units to screen pixels is simple: px = dp * (dpi / 160). For example, on a 240 dpi screen, 1 dp equals 1.5 physical pixels. You should always use dp units when defining your application's UI, to ensure proper display of your UI on screens with different densities.
        公式
  1. px = dp * (dpi / 160)  
        说明1dp代表了多少个px,下面我们简单的推导一下这个公式。

        首先,dpi是Dots Per Inch的缩写(wiki),表示一英寸内有多少个点,对于UI界面而言,这个点就是像素(Pixel)。

        然后,我们看一下dp的单位:


  1. 像素 = dp的单位 * 像素/英寸  
        可以看出dp的单位是长度单位英寸,上面dp的定义的最后一句话说明了这一点:In other words, it provides consistency for the real-world sizes of your UI elements across different devices.

        最后,我们看一下1dp的值有多大。1dp对应dpi/160个像素,根据dpi的定义,每个像素的长度为1/dpi英寸,合在一起就是1dp=1/160英寸。


  1. 1dp的长度 = 1 * dpi / 160 * 1 / dpi 英寸 = 1 / 160 英寸  

  • 结论

        dp等同于dip,它是一个长度单位,1dp=1/160英寸。

        dp这个单位的意义在于:你可以根据看到的实际大小,在应用中设置对应的dp值,而使得不同的设备上看起来一样大。



本文转载自:http://blog.csdn.net/oyangyujun/article/details/47973909

共有 人打赏支持
k
粉丝 1
博文 129
码字总数 0
作品 0
朝阳
android兼容小米xiaomi刘海屏解决方案

引用自小米官方文档,这里缩减了一些内容,捡取重要内容。 转载请标明出处: https://blog.csdn.net/DJY1992/article/details/80688376 本文出自:【奥特曼超人的博客】 推荐: android 兼容所...

奥特曼超人
06/14
0
0
0-2岁的app开发人员必读,Android开发APP前的准备事项

随着移动互联网的兴起,各行各业对移动应用的需求越来越大,从事APP开发的人也越来越多,APP开发行业可以说是方兴未艾。APP开发是比较复杂的事情,涉及产品、美工设计、服务器端开发、Andro...

传授知识的天使
06/06
0
0
android多分辨率多屏幕密度下UI适配方案

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

geeksu
2014/08/20
0
0
android兼容oppo手机刘海屏解决方案

引用自OPPO官方文档,这里缩减了一些内容,选取重要内容,包括oppo沉浸式的兼容。 转载请标明出处: https://blog.csdn.net/DJY1992/article/details/80688802 本文出自:【奥特曼超人的博客】...

奥特曼超人
06/14
0
0
Android初级第九讲之适配和调试

本文来自http://blog.csdn.net/liuxian13183/ ,引用必须注明出处! Android适配需要考虑方方面面,主要是图片字体大小和API,但也要考虑其他场景下的一些问题。 先熟悉一下Android设备的dpi...

liuzxgeek
2016/12/14
0
0
移动端 UI 适配最佳实践(中)

上篇谈到了一些基础概念:屏幕密度、逻辑像素什么的,接下来继续探讨 常见设备尺寸 更全的数据请参考Google 统计 说明:图中的 iPhone 6 Plus 数据看起来有些蹊跷,414 x 736 * 3 = 1242 x ...

yinjq
2015/11/10
0
1
Android屏幕适配全攻略(最权威的官方适配指导)

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

程序袁_绪龙
2015/07/21
0
0
Android 性能优化:手把手教你优化Bitmap图片资源的使用

前言 在 开发中,性能优化策略十分重要 本文主要讲解性能优化中的Bitmap 使用优化,希望你们会喜欢 目录 1. 优化原因 即 为什么要优化图片资源,具体如下图:

Carson_Ho
04/24
0
0
一款APP,从设计稿到切图(Android篇)

原文出处:BATLCK 依旧声明:这里写的依旧只是某一种工作方法,而不是一种规范,你可以参考,但不要照搬,在具体工作中,一定要灵活运用。 汇总贴,整理了之前零散的关于Android的文章……这...

BAT_LCK
2015/12/03
0
0
Android适配不同的dpi和屏幕尺寸

一、引言   Android的开源使厂商无需自行研发OS,大大降低了研发、生产的成本,使得Android平板品牌如雨后春笋般爆发,山寨机厂商们似乎又找到了一丝希望。与此同时带来的是广大开发者的苦...

ljrapple
2015/03/12
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

RESTful API 设计规范

关于「能愿动词」的使用 为了避免歧义,文档大量使用了「能愿动词」,对应的解释如下: 必须 (MUST):绝对,严格遵循,请照做,无条件遵守; 一定不可 (MUST NOT):禁令,严令禁止; 应该 (S...

niithub
4分钟前
0
0
Spring Cloud云服务架构 - common-service 项目过程构建

我们将对common-service整个项目进行剖析,将整个构建的流程给记录下来,让更多的关注者来参考学习。 首先在构建spring cloud的common-service之前,我们需要准备的技术: Maven(项目构建)...

itcloud
5分钟前
0
0
oracle 如何查看日志?

Oracle日志查看一.Oracle日志的路径:登录:sqlplus "/as sysdba"查看路径:SQL> select * from v$logfile;SQL> select * from v$logfile;(#日志文件路径)二.Oracle日...

youfen
6分钟前
0
0
sap netweaver developer studio安装svn插件

问题 我现在在Sap的IDE(netweaver developer studio)上面安装svn插件。 步骤 确定IDE使用的eclipse版本 Help→About SAP NetWeaver Developer Studio→Installation Details→Features→F...

亚林瓜子
13分钟前
0
0
大数据开发学习的内容介绍,成都大数据培训机构哪里好?

大数据开发培训已经成为了越来越多人的选择,大数据开发工程师也是各公司争相争夺的金领人才之一了,在当今科技发展非常迅速的社会里,越来越多人把职业规划投向了大数据开发。这里为大家整理...

加米谷大数据
18分钟前
2
0
函数

函数 函数是Python中最主要也是最重要的代码组织和复用手段。作为最重要的原则,如果你要重复使用相同或非常类似的代码,就需要写一个函数。通过给函数起一个名字,还可以提高代码的可读性。...

火力全開
19分钟前
0
0
gulp-webserverf启动服务,局域网无法访问

如题,gulp-server启动的服务,只能本机访问,局域网通过ip无法访问; 启动的其它项目,均可以访问成功; 网上资源,很多说什么防火墙之类的问题,都无果; 只需要给启动服务添加参数即可, ...

littleFaye
21分钟前
0
0
RabbitMQ实战:5种模式和示例

应用RabbitMQ的5种队列 一、简单队列 P:消息的生产者 C:消息的消费者 红色:队列 生产者实现思路: 创建连接工厂ConnectionFactory,设置服务地址127.0.0.1,端口号5672,设置用户名、密码...

spinachgit
22分钟前
0
0
mysql常见报错标号对应原因以及处理方法

mysql常见报错标号以及对应解决方法 报错标号 报错现象 解决方法 原因 1449 Cause: java.sql.SQLException: The user specified as a definer ('authplat_dev'@'%') does not exist 在控制台...

ChinaHYF
24分钟前
0
0
Java 监控系统技术选型

(1)操作系统监控 Sigar oshi (2)Tomcat监控 JMX 日志 (3)Oracle监控 日志 直连SQL查询 基于Druid连接池 (4)拓扑图 jtopo http://www.jtopo.com/demo/statictis.html...

cccyb
26分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部