成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

移動開發者必須了解的像素知識

移動開發
像素(Pixel)對于WEB開發者來說很是熟悉,在PC互聯網時代沒少與其打交道。進入移動互聯網之后,隨著移動設備屏幕的解析度越來越高,衍生了一些關于屏幕和像素的一些新概念,比如DPI,DP,PT,Retina,4K等等,本文對這些概念做一個簡單的介紹。

[[124454]]

像素(Pixel)對于WEB開發者來說很是熟悉,在PC互聯網時代沒少與其打交道。進入移動互聯網之后,隨著移動設備屏幕的解析度越來越高,衍生了一些關于屏幕和像素的一些新概念,比如DPI,DP,PT,Retina,4K等等,本文對這些概念做一個簡單的介紹。

DPI與PPI

DPI(Dots Per Inch)是印刷行業中用來度量空間點密度用的,這個值是打印機每英寸可以噴的墨汁點數。計算機顯示設備從打印機中借鑒了DPI的概念,由于計算機顯示設備中的原子單位不是墨汁點而是像素,所以就創造了PPI(Pixels Per Inch),這個值是屏幕每英寸的像素數量,即像素密度(Screen density)。由于各種原因,目前PPI(主要是iOS)和DPI(比如在Android中)都會用在計算機顯示設備的參數描述中,不過二者的意思是一樣的,都是代表像素密度。

高PPI屏幕顯示的元素會比較精細(看起來會比較小),低PPI屏幕顯示的元素相對來說就比粗糙(看起來會比較大),我們通過一幅圖來看看在不同PPI下元素顯示的區別:

PPI

HD與4K

現在移動設備、智能電視宣傳最多的兩個關鍵詞估計就是HD、4K,這二者都是用來描述顯示設備分辨率的標準,到底二者之間有什么區別?

HD(High-Definition)的分辨率要高于1280x720px或者720p。

Full HD的分辨率要高于1920x1080px,目前是主流電視以及高端手機(比如Galaxy SIV, HTC one, Sony Xperia Z, Nexus5等)采用的是這個分辨率。

4K(也叫做Quad HD或者Ultra HD)的分辨率從3840x2160起步,主要是現在高端電視的分辨率;其還有一個更高的4096x2160的標準,主要用于電影放映機或者專業相機。

4k

Retina

Retina display即視網膜屏幕,是蘋果發布iPhone 4時候提出的,之所以叫做視網膜屏幕,是因為屏幕的PPI太高,人的視網膜無法分辨出屏幕上的像素點。iPhone 4/S的PPI為326,是iPhone 3G/S的兩倍,如下圖:

retina-01

由于屏幕在寬和高的像素數量提高了整整一倍,所以之前非Retina屏幕上的一個像素渲染的內容在Retina屏幕上會用4個像素去渲染:1x1px(non Retina) = 2x2px(Retina),這樣元素的內容就會變得精細,比如:

retina-02

注意,Retina display是蘋果注冊的命名方式,其他廠商只能使用HI-DPI或者其他的命名方式,不過意思都是一樣的,就是屏幕的PPI非常高。

DP/PT/SP

隨著移動設備屏幕PPI的不斷提高,對于開發者來說以前用物理像素(Physical Pixel)來度量顯示元素的方法已經不奏效了。為了解決這個問題,兩大平臺都提出了抽象像素的概念:iOS叫做PT(Point,顯示點),Android中叫做DP/DiP(Device independent Pixel,設備無關像素),如果沒有特殊說明,以下統一用DP來進行描述。

舉個例子,44x44dp的元素在非Retina屏幕中等于44x44px,在Retina屏幕中等于88x88px(變為4倍)。

dp-01

SP(Scale-independent pixel)是縮放無關的像素,與DP和PT一樣都是抽象像素,只不過用于描述字體的大小。

iOS中處理PPI

iOS中處理不同PPI顯示的方法很簡單:首先規定在多高的PPI下1DP等于1px,并以這個PPI作為基準(1x multiplier),如果顯示設備的PPI是基準PPI的2倍,那么1DP等于2px(2x multiplier),其實就是簡單的小學乘法。

在iPhone系列中,3G/S為1x multiplier,其他為2x multiplier:

ios-01

在iPad系列中,iPad 1代和2代為1x multiplier,其他為2x multiplier:

ios-02

在iPad Mini系列中,iPad Mini一代為1x multiplier,其他為2x multiplier:

ios-03

在iOS中,同一個應用在非Retina屏幕和Retina屏幕顯示的資源是不同的,其規則是: name.png為非Retina資源,name@2x.png為Retina資源,所以對于設計人員來說,在你設計的時候需要考慮到Retina屏幕和非Retina屏幕,看下面這個例子:

ios-04

Android中處理PPI

由于Android系統是開放的系統,要適配的PPI非常多,所以它對PPI劃分的非常細:

  • ldpi (low) ~120dpi
  • mdpi (medium) ~160dpi
  • hdpi (high) ~240dpi
  • xhdpi (extra-high) ~320dpi
  • xxhdpi (extra-extra-high) ~480dpi
  • xxxhdpi (extra-extra-extra-high) ~640dpi

你需要把對應dpi的資源放到對應的目錄就可以了,Android會根據dpi自動選擇資源,目錄規則如下:

  • drawable-mdpi/asset.png
  • drawable-hdpi/asset.png
  • drawable-xhdpi/asset.png
  • ...

可以看出Android中mdpi與iOS中的1x multiplier所代表的PPI是一樣的,xhdpi與iOS的2x multiplier所代表的PPI一樣,如圖:

android-01

android-02

參考

(完)

網址: http://weizhifeng.net/you-should-know-about-dpi.html

責任編輯:閆佳明 來源: weizhifeng.net
相關推薦

2014-03-28 16:03:03

移動開發跨平臺工具

2018-01-01 15:32:44

Android顏色廣色域

2010-08-12 14:13:01

Flex開發者

2017-12-28 11:01:02

Android開發顏色知識

2014-09-01 09:53:50

Android框架

2016-12-26 17:53:05

Java開發者編程語言

2017-02-05 16:00:35

Java編程語言

2017-01-15 17:48:04

Java開發者編程語言

2013-10-30 12:51:34

2015-09-29 09:51:09

移動游戲開發技巧

2013-07-18 09:42:23

2013-01-14 17:11:24

2013移動開發者開發者

2013-09-10 09:35:53

移動開發者全能開發者技能

2012-12-31 13:17:10

移動開發者營銷

2019-03-12 10:38:18

前端開發Nginx

2018-06-15 08:43:33

Java堆外內存

2010-08-04 16:26:32

Android開發

2015-03-31 09:40:23

移動開發開發工具APP

2011-12-29 17:09:08

開發者沙龍

2020-02-25 17:13:15

移動開發iOSAndroid
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品三级久久久久久电影 | 亚洲视频在线播放 | 99精品国产一区二区青青牛奶 | 免费成人av | 欧美国产日韩一区二区三区 | 成人精品免费视频 | 亚州毛片| 精品国产成人 | 免费午夜视频在线观看 | 午夜视频在线观看视频 | 日本精品视频在线 | 五月婷婷丁香 | 天天躁日日躁狠狠的躁天龙影院 | 99视频免费 | 国产一级一级毛片 | 影音先锋久久 | 久久99精品久久久久 | 欧美一区| 中文字幕亚洲区一区二 | 免费av手机在线观看 | 久久午夜精品福利一区二区 | 色婷婷精品久久二区二区蜜臂av | 成人免费一区二区三区视频网站 | 国产日韩一区二区三区 | 亚洲精品粉嫩美女一区 | 国产精品一区二区电影 | 九九热在线精品视频 | 国产一区二区在线免费观看 | 91视频久久久久 | 偷拍自拍第一页 | 中文字幕一区二区三区四区不卡 | 成人影院一区二区三区 | 成人国产精品视频 | 成人亚洲综合 | 精品国产鲁一鲁一区二区张丽 | 蜜臀久久99精品久久久久野外 | 九九久久久 | 色综合一区二区 | 在线观看中文字幕 | 国产美女一区二区 | 精品欧美乱码久久久久久 |