科普dip,dp,sp,dpi,ppi,px,Density

一、概念

DPI:DPI是Dots Per Inch的縮寫,也就是“每英寸點數”,打印機分辨率。這里所說的“點”,在屏幕上并不是不變的,并不是唯一對應屏幕上的像素點,而是受到分辨率等因素的影響。這個點有可能是1個像素,也有可能是多個像素。一般是用于打印機的

PPI:是 Pixel per inch,每英寸像素數,圖片分辨率。PPI越高圖片越細膩。

DIP:DIP是指Density Independent Pixels,可以翻譯為密度無關像素。和px相比,dip在不同密度的屏幕中實際顯示比例將保持一致。根據規定,一個dp相當于160dpi屏幕中的一個px。在320dpi的屏幕中,一個dp相當于2個px。

dp:等于dip。在Android開界面布局文件時,dp是長度單位。

sp:scaled pixels(放大像素),與dp相似. 主要用于字體顯示best for textsize。

px: pixels(像素). 不同設備顯示效果相同,一般我們HVGA代表320x480像素,這個用的比較多。顯示的風格不同,就像網頁,在1280*800 中顯示正常。1024*768 中顯示亂掉。

Density:密度,是指屏幕里像素值濃度,其計算方式為分辨率/屏幕尺寸

二、Android中對Density的特別設計

為了適配不同android設備的屏幕尺寸,Android對屏幕密度做了重新的規定,將密度Density與屏幕分辨率綁定起來,給了固定的值。

屏幕

Tyep

寬度

Pixels

高度

Pixels

尺寸

Range(inches)

屏幕密度

QVGA

240

320

2.6-3.0

low

WQVGA

240

400

3.2-3.5

low

FWQVGA

240

432

3.5-3.8

low

HVGA

320

480

3.0-3.5

Medium

WVGA

480

800

3.3-4.0

High

FWVGA

480

854

3.5-4.0

High

WVGA

480

800

4.8-5.5

Medium

FWVGA

480

854

5.0-5.8

Medium

備注

目前android默認的low=120 ;Medium =160; High = 240


三、Android中的計算關系

在android源碼包TypedValue.java中,我們看如下函數:

該函數功能:是把各單位換算為像素。


DisplayMetrics metrics)
{
switch (unit) {
case COMPLEX_UNIT_PX:
return value;
case COMPLEX_UNIT_DIP:
return value * metrics.density;
case COMPLEX_UNIT_SP:
return value * metrics.scaledDensity;
case COMPLEX_UNIT_PT:
return value * metrics.xdpi * (1.0f/72);
case COMPLEX_UNIT_IN:
return value * metrics.xdpi;
case COMPLEX_UNIT_MM:
return value * metrics.xdpi * (1.0f/25.4f);
}
return 0;
}

DENSITY:密度的意思

metrics.density:默認值為DENSITY_DEVICE / (float) DENSITY_DEFAULT;

metrics.scaledDensity:默認值為DENSITY_DEVICE / (float) DENSITY_DEFAULT;

metrics.xdpi:默認值為DENSITY_DEVICE;

DENSITY_DEVICE:為屏幕密度

DENSITY_DEFAULT:默認值為160

---------------------------------------------

從Android的源碼得知:

像素=dp*(屏幕密度/160)

dp=160*像素/屏幕密度

從上表可知Android規定分辨率320x480 的A屏幕密度為160dpi,分辨率480*800的B屏幕密度為240dpi

A:寬,dp=160*320/160=320

B:寬,db=160*480/240=320

由此可見,Android里用dp單位,1dp在320*480和480*800的分辨率的屏幕下是一樣的,顯示效果是一樣的


本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/539968.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/539968.shtml
英文地址,請注明出處:http://en.pswp.cn/news/539968.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

do與mysql數據類型對照_dophon-db: dophon框架的數據庫模塊,支持mysql,sqlite數據庫,帶有orm持久化功能與鏈式操作實例,貼近邏輯習慣,支持mysql多數據源配置...

dophon-db項目介紹dophon框架的數據庫模塊,也可單獨作為一個與數據庫模塊交互的部件支持mysql數據庫連接支持orm形式的數據操作如有疑問請發送郵件聯系作者:ealohu163.com軟件架構模塊架構分為以組件:mysql連接組件(包括連接池,連接封裝類,分頁,結果輸出過濾器,遠程接收器,增量…

clamp 函數

返回范圍內的一個數值。可以使用 clamp 函數將不斷增加、減小或隨機變化的數值限制在一系列的值中。 float clamp(float minnumber, float maxnumber, float parameter) 最小數值和最大數值指定返回值的范圍。 參數是值要鉗制在范圍內的屬性或變量。 如果參數位于最小數值和最大…

jquery $.each遍歷json數組方法

轉載地址&#xff1a;http://blog.sina.com.cn/s/blog_636f2d150101ezs1.html <!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd"> <html xmlns"http://www.w3.o…

java 責任鏈模式 鏈表_責任鏈模式的實現及源碼中應用

01—責任鏈模式的實現假設一個出差任務的流程需要審批出差行程和出差報銷金額。那么&#xff0c;對應兩個部門的審核。我們先定義一個出差任務Task類&#xff1a;然后&#xff0c;我們定義一個抽象的處理類Handler&#xff0c;其中具體的處理方法Handle交給子類去實現。然后&am…

JQuery $.each遍歷JSON字符串報Uncaught TypeError:Cannot use 'in' operator to search for

查看一個簡單的jQuery的例子來遍歷一個JavaScript數組對象。 [js] view plaincopy var json [ {"id":"1","tagName":"apple"}, {"id":"2","tagName":"orange"}, {"id":&quo…

php setcookie 過期,php cookie怎么設置過期時間?

PHP中可以使用setcookie()函數設置cookie的過期時間。語法為“setcookie(name,value,expire,path,domain,secure)”&#xff1b;其中expire參數用于指定cookie的有效期&#xff0c;即過期時間戳。setcookie() 函數向客戶端發送一個 HTTP cookie。cookie 是由服務器發送到瀏覽器…

nginx自定義500、404錯誤頁面

1&#xff0c;首先在http添加以下內容 http{ fastcgi_intercept_errors on; } 2&#xff0c;server中添加以下內容&#xff1a; 注意路徑 error_page 500 502 503 504 /500.html; location /500.html { internal; } error_page 404 /404.html; location /404.html { intern…

php如何輸出復選框的值,php 怎么輸出復選框呢?

表單有6個復選框&#xff0c;如果選中的分別是第126個&#xff0c;數據庫存為 1&#xff0c;2&#xff0c;6現在的問題是 在修改的頁面 怎么用php從數據庫取值&#xff0c;輸出6個復選框&#xff0c;讓126為checked &#xff1f;回復討論(解決方案)$row[id]1;>我的意思是 從…

jQuery Mobile動態刷新頁面樣式

見 百度經驗 http://jingyan.baidu.com/article/7f766dafbc18f24101e1d014.html JQM里面當我們更新了某些頁面標簽(如: listview, radiobuttons, checkboxes, select menus)里的數據時,必須做refresh操作. 為什么必須做refresh操作操作呢?因為JQM在做頁面渲染的時候,為了使樣…

R-CNN論文翻譯

R-CNN論文翻譯Rich feature hierarchies for accurate object detection and semantic segmentation用于精確物體定位和語義分割的豐富特征層次結構2017-11-29摘要過去幾年&#xff0c;在權威數據集PASCAL上&#xff0c;物體檢測的效果已經達到一個穩定水平。效果最好的方法是融…

inflate簡介,LayoutInflater和inflate()方法的用法

一、inflate簡介 inflate這個方法總共有四種形式&#xff08;見下面&#xff09;&#xff0c;目的都是把xml表述的layout轉化為View對象。 其中有一個比較常用&#xff0c;View inflate(int resource, ViewGroup root)&#xff0c;另三個&#xff0c;其實目的和這個差不多。 …

php ci框架 實例化類,php框架CI(codeigniter)自動加載與自主創建對象操作實例分析...

本文實例講述了php框架CI(codeigniter)自動加載與自主創建對象操作。分享給大家供大家參考&#xff0c;具體如下&#xff1a;CI的autoload很好用&#xff0c;自動創建對象&#xff0c;但是注意&#xff0c;他的對象只有一個。我們很多情況下需要生成對象&#xff0c;這就很麻煩…

sass、gulp應用

Sass介紹n CSS 不是一個編程語言&#xff0c;可以用它來開發網頁樣式&#xff0c;但是沒有辦法用它進行編程。SASS 的出現&#xff0c;讓 CSS 實現了通過代碼編程來實現的方式。n SASS 是一種 CSS 開發工具&#xff0c;提供了許多便利的寫法&#xff0c;讓CSS 的處理實現了可編…

自定義控件SettingItemView

一、效果圖 選中&#xff1a;顯示自動更新開啟不選擇&#xff1a;顯示自動更新關閉------------在布局文件中的使用方式和android自生的控件一樣 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.andro…

php中如何存儲多個文本框,php-如何將每個字符的文本框拆分為多個子文本框

我正在設計一個PHP表單,其中包含一些輸入字段,如下圖所示.如何將輸入類型(文本框)拆分為單個字符子文本框,或將文本框拆分為給定字符串的每個字符的多列文本框.以及如何在其中插入數據| JOHN DOE |進入| J | O | H | N | | D | O | E |這樣解決方法:的HTML的CSS#text{backgroun…

為什么會有 AOP

為什么80%的碼農都做不了架構師&#xff1f;>>> AOP 面向切面的編程。 先上三張圖片 三處對數據庫進行操作&#xff0c; 但這三處有大量的重復的代碼&#xff0c;每次都是獲取session&#xff0c;獲取mapper&#xff0c;執行&#xff0c; commit&#xff0c;close…

PHP有表單和js交互亂碼問題,js 和 php交互問題

就是前端js發送數據給php處理&#xff0c;然后處理完之后接受php發送的返回結果&#xff0c;不用ajax&#xff0c;有其他的方法嗎&#xff1f;多謝&#xff01;iframe 公子 說的很明白了。Flashiframe內嵌個表單提交到PHP頁面并顯示結果&#xff0c;JS讀取iframe頁面內的內容即…

Android應用檢查更新下載安裝打開

一、效果 低版本1.02檢測到新版本1.03 調用android的安裝activity頁面 安裝完成 打開 1.03版本 二、注意 必須使用簽名的應用。因為android不管是虛擬機還是真機安裝應用都需要簽名。 在開發時&#xff0c;我們運行程序時&#xff0c;開發環境ADT會自動給我們加入一個默認的…

lnmp解析php,搭建LNMP,可以解析PHP文件-Go語言中文社區

一、安裝 nginx1. yum -y install pcre-devel zlib-devel links 下載相應軟件可以使用rpm -qa 軟件名 來查看是否安裝成功??2.useradd -u 250 -M -s /sbin/nologin nginx 建立程序用戶&#xff0c;降低權限3.tar xf nginx-1.6.0.tar.gz -C /usr/src/nginx 解壓并指定…

Linux vi 編輯器常見命令的使用

Linux vi 編輯器常見命令的使用 Linux下的文本編輯器有很多種&#xff0c;vi 是最常用的&#xff0c;也是各版本Linux的標配。注意&#xff0c;vi 僅僅是一個文本編輯器&#xff0c;可以給字符著色&#xff0c;可以自動補全&#xff0c;但是不像 Windows 下的 word 有排版功能。…