精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Android布局中長度單位的深入研究

移動開發(fā) Android
要想使自己的布局在不同設(shè)備達到精準空置,理清理順Android布局長度單位之間關(guān)系很有必要,否則你也許會經(jīng)常撓頭為什么顯示出來的布局不是自己定義的效果呢,有些東西,雖然基礎(chǔ),但是弄個透徹也需要花些功夫,廢話不多說,下面開始。

要想使自己的布局在不同設(shè)備達到精準空置,理清理順Android布局長度單位之間關(guān)系很有必要,否則你也許會經(jīng)常撓頭為什么顯示出來的布局不是自己定義的效果呢,有些東西,雖然基礎(chǔ),但是弄個透徹也需要花些功夫,廢話不多說,下面開始。

1.先了解一下Android有支持哪些長度單位

px: pixels(像素). 不同設(shè)備顯示效果相同,比如我們800*480的屏幕寬度就是 800px

dip: device independent pixels(設(shè)備獨立像素). 不同設(shè)備有不同的顯示效果,這個和設(shè)備硬件有關(guān),通常屏幕大時,density就大,屏幕小時,density就小

屏幕實際分辨率為240px*400px時,densityDpi=120

屏幕實際分辨率為320px*533px,densityDpi=160

屏幕實際分辨率為480px*800px,densityDpi=240

而dip與px之間的換算關(guān)系是:

pixs =dips * (densityDpi/160),也就是說當densityDpi=160時,1dip=1px

sp: scaled pixels(放大像素),sp的大小取決于系統(tǒng)metrics.scaledDensity值大小

pt: point,是一個標準的長度單位,1pt=1/72英寸,用于印刷業(yè)(基本用不到)

pt與px的換算關(guān)系:pixs = pt*xdpi * (1.0f/72);xdpi表示1英寸像素個數(shù)

in(英寸)長度單位(基本用不到)

in與px的換算關(guān)系:pixs = in*xdpi

mm(毫米)長度單位(基本用不到)

mm與px的換算關(guān)系:pixs = mm * xdpi * (1.0f/25.4f)

2.系統(tǒng)獲取長度單位

看了上面具體長度單位的含義你會產(chǎn)生一個疑問,不同單位換算取決于系統(tǒng)的一些屬性,比如densityDpi的值,xdpi的值,那么系統(tǒng)這些值在哪里獲取了,直接看測試用例:

  1. public void testgetdisplay(){ 
  2. WindowManager wm = (WindowManager) this.getInstrumentation().getContext().getSystemService(Context.WINDOW_SERVICE); 
  3. DisplayMetrics mDisplayMetrics = new DisplayMetrics(); 
  4. wm.getDefaultDisplay().getMetrics(mDisplayMetrics); 
  5. System.out.println("display.height="+wm.getDefaultDisplay().getHeight()); 
  6. System.out.println("display.width="+wm.getDefaultDisplay().getWidth()); 
  7. System.out.println("densityDpi="+mDisplayMetrics.densityDpi); 
  8. System.out.println("xdpi="+mDisplayMetrics.xdpi); 
  9. System.out.println("density="+mDisplayMetrics.density); 

3.densityDpi與drawable-(hdpi,mdpi,ldpi)之間的關(guān)系

系統(tǒng)drawable有hdpi,mdpi,ldpi三個文件夾下面存放不同尺寸的圖片,使用哪個文件下的文件,與系統(tǒng)densityDpi值是有關(guān)系的。

densityDpi=120:ldpi
densityDpi=160:mdpi
densityDpi=240:hdpi

前面我又說過densityDpi取決于顯示屏,這樣你就了解了為什么不同顯示屏WVGA,HVGA,QVGA會采用不同drawable-(hdpi,mdpi,ldpi)圖片。

分辨率為240px*400px,densityDpi=120-->QVGA:ldpi

分辨率為320px*533px,densityDpi=160 -->HVGA:mdpi

分辨率為480px*800px,densityDpi=240 -->WVGA:WVGA

4.深入了解代碼

盡管了解上面這些理論值,但是有時候發(fā)現(xiàn)設(shè)置了不同長度單位,可顯示出來的效果卻出人預(yù)想,我曾經(jīng)就碰到過這種撓頭的問題,為解決這個問題,只有深入代碼,一探究竟了。

在深入代碼前我們首先要搞清楚一個問題,那就是代碼中所有長度值的單位都是px,手上沒有現(xiàn)成的例子就以現(xiàn)在我研究的/Launcher2/res/layout-land/workspace_screen.xml為例,看一個自定義屬性:

launcher:cellWidth="105pt"

該屬性自定義了一個桌面快捷圖標的寬度,若讀者自己測試,自己寫個測試view,設(shè)置屬性:

android:layout_width="800px"

是一樣的。

當view被創(chuàng)建的時候,xml中的屬性值存在參數(shù)AttributeSet attrs中:

  1. public CellLayout(Context context, AttributeSet attrs, int defStyle) 

繼續(xù)看該構(gòu)造函數(shù)的實現(xiàn)代碼:

  1. public CellLayout(Context context, AttributeSet attrs, int defStyle) { 
  2. super(context, attrs, defStyle); 
  3. //獲取自定義屬性組CellLayout中的所有自定義屬性,關(guān)于自定義屬性,這里不作展開說明 
  4. TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.CellLayout, defStyle, 0); 
  5. //獲取屬性cellWidth的值,長度單位將轉(zhuǎn)換為px 
  6. mCellWidth = a.getDimensionPixelSize(R.styleable.CellLayout_cellWidth, 10); 
  7. 。。。 

實現(xiàn)長度單位換算的關(guān)鍵代碼就在a.getDimensionPixelSize(R.styleable.CellLayout_cellWidth, 10),直接深入到關(guān)鍵代碼:

  1. public int getDimensionPixelSize(int index, int defValue) 
  2. public static int complexToDimensionPixelSize(int data,DisplayMetrics metrics) 
  3. public static float applyDimension(int unit, float value,DisplayMetrics metrics){ 
  4. switch (unit) { 
  5. case COMPLEX_UNIT_PX: 
  6. return value; 
  7. case COMPLEX_UNIT_DIP: 
  8. return value * metrics.density; 
  9. case COMPLEX_UNIT_SP: 
  10. return value * metrics.scaledDensity; 
  11. case COMPLEX_UNIT_PT: 
  12. return value * metrics.xdpi * (1.0f/72); 
  13. case COMPLEX_UNIT_IN: 
  14. return value * metrics.xdpi; 
  15. case COMPLEX_UNIT_MM: 
  16. return value * metrics.xdpi * (1.0f/25.4f); 
  17. return 0

unit就是指單位類型,這個怎么來的我沒有,但我想它肯定是在解析xml是根據(jù)不同單位轉(zhuǎn)換的。

責任編輯:徐川 來源: OSChina
相關(guān)推薦

2011-06-01 10:58:54

Android Service

2011-12-15 10:43:20

JavaNIO

2024-03-17 19:14:28

2022-05-11 09:03:05

CSS容器文本換行

2010-06-21 13:07:14

2010-05-31 17:45:50

MySQL行鎖

2017-06-06 11:29:23

Java異常研究與分析

2016-01-12 18:04:55

Java異常研究

2018-12-24 15:00:58

混合云多云云采用

2010-11-23 16:35:59

MySQL刪除多表數(shù)據(jù)

2010-11-18 17:24:27

Oracle旋轉(zhuǎn)ins

2021-05-25 09:00:00

Kubernetes容器集群

2009-12-08 18:45:17

PHP檢查函數(shù)可用

2010-05-19 14:45:46

2009-10-20 10:17:50

綜合布線系統(tǒng)驗收

2022-04-19 08:28:34

main函數(shù)

2010-11-26 11:57:35

MySQL結(jié)果字符串

2012-10-29 10:30:36

CSSWeb前端display

2010-06-19 14:03:20

2010-08-23 17:47:33

DHCP服務(wù)器
點贊
收藏

51CTO技術(shù)棧公眾號

成人av先锋影音| 亚洲精品国产动漫| 依依成人综合视频| 91高跟黑色丝袜呻吟在线观看| 丝袜 亚洲 另类 欧美 重口| gogo久久日韩裸体艺术| 一本色道久久综合亚洲aⅴ蜜桃| 日韩欧美亚洲在线| 国内毛片毛片毛片毛片| 亚洲欧美成人| 久久最新资源网| 老熟妇精品一区二区三区| 日韩不卡视频在线观看| 亚洲精品v日韩精品| 欧美资源一区| 亚洲卡一卡二卡三| 久久精品国产99久久6| 国模吧一区二区三区| 成人一级片免费看| 欧美综合精品| 日韩欧美三级在线| 91福利国产成人精品播放| 免费在线看污片| 国产亚洲精品bt天堂精选| 国产91aaa| 91激情在线观看| 久久精品人人| 97国产精品视频人人做人人爱| 欧美精品日韩在线| 日韩理论电影中文字幕| 欧美一级xxx| 色多多视频在线播放| 川上优av中文字幕一区二区| 亚洲人成网站色在线观看| 日本一区二区三区四区在线观看| 亚洲国产精品欧美久久 | 国产欧美日韩在线看| 国产精品传媒毛片三区| 国产不卡av在线播放| 蜜臀久久99精品久久久久久9| 81精品国产乱码久久久久久| 国产一级特黄a高潮片| 小小影院久久| 日韩网站免费观看| 一级黄色毛毛片| 国产一区二区三区91| 精品国产成人系列| www.欧美com| 亚洲国产精品免费视频| 欧美喷水一区二区| 国产精品久久久毛片| 桃色一区二区| 91精品91久久久中77777| 北条麻妃69av| 在线天堂资源| 91激情在线视频| 乱子伦视频在线看| 欧美男女交配| 欧美影院午夜播放| 中文久久久久久| 久久久久黄色| 欧美日本国产一区| 肉色超薄丝袜脚交| 日本免费一区二区三区视频| 91精品国产综合久久久久久久久久| 高清av免费看| 伊人亚洲精品| 精品国产乱码久久久久久浪潮 | 久久久一区二区| 久久久一本精品99久久精品66 | 国产精品久久久久久无人区| 久久精品国产秦先生| 2014亚洲精品| 天天色天天操天天射| 91麻豆.com| 亚洲国产精品视频一区| 黄色网页网址在线免费| 一区二区在线观看视频在线观看| 久久久久99精品成人片| 筱崎爱全乳无删减在线观看| 在线亚洲免费视频| 手机在线免费毛片| 国产调教精品| 在线成人一区二区| 国产精品视频一区二区三 | 99精品久久久久久中文字幕| 国产v日产∨综合v精品视频| 久久国产精品免费一区| 99se视频在线观看| 一区二区三区美女视频| 黄色影院一级片| 78精品国产综合久久香蕉| 在线不卡免费av| 三级视频网站在线观看| 日韩aaaa| 久久免费少妇高潮久久精品99| 日韩三级一区二区| 国产精品影视在线| 日本精品国语自产拍在线观看| 免费高清在线观看| 精品国产鲁一鲁一区二区张丽| 日韩有码免费视频| 日韩最新av| 国产一区二区三区精品久久久 | av免费观看久久| 欧美xxx.com| 玉足女爽爽91| 午夜宅男在线视频| 精品在线网站观看| 久久久999精品视频| 亚洲永久精品在线观看| 国内精品久久久久影院一蜜桃| 久久av二区| 污视频在线免费观看网站| 91成人国产精品| 精品国产乱码久久久久夜深人妻| 精品在线99| 久久久久久久久久av| 91麻豆成人精品国产免费网站| 91丨porny丨国产| 日本黄网站色大片免费观看| 秋霞国产精品| 亚洲人a成www在线影院| 亚洲国产精品午夜在线观看| 久久精品国产**网站演员| 欧美激情一区二区三区在线视频| 污视频网站免费在线观看| 欧美日韩一区二区电影| japanese中文字幕| 国产日韩亚洲欧美精品| 国产精品一国产精品最新章节| 黄色片免费在线观看| 欧美日韩综合在线免费观看| 熟女俱乐部一区二区视频在线| 在线电影一区| 成人免费视频视频在| 91亚洲天堂| 欧美一区二区视频在线观看| 亚洲女人毛茸茸高潮| 免费在线视频一区| 婷婷久久五月天| 偷拍精品精品一区二区三区| 国产视频一区在线| 国产69精品久久久久久久久久| 夫妻av一区二区| www.欧美黄色| 亚洲日本视频在线| 欧美日韩国产123| 亚洲xxx在线| 亚洲午夜久久久| 91人妻一区二区| 在线成人黄色| 久久婷婷开心| 性欧美freesex顶级少妇| 亚洲国产日韩欧美综合久久| 激情五月色婷婷| 久久婷婷一区二区三区| 欧美激情成人网| 欧美艳星介绍134位艳星| 国产精品国产三级国产专播精品人 | 精精国产xxxx视频在线中文版| 日韩欧美在线影院| 久久久久久国产精品视频| 成人午夜在线视频| 人妻熟妇乱又伦精品视频| 亚洲高清极品| 国产精品永久在线| 成人免费网址| 亚洲成人在线网| 亚洲欧美综合另类| 中文字幕av资源一区| 中文字幕中文在线| 欧美成熟视频| 国产一区二区不卡视频| 国产日韩电影| 日韩有码片在线观看| 亚洲国产成人精品一区二区三区| 亚洲成人精品在线观看| 受虐m奴xxx在线观看| 久久99精品国产.久久久久久 | 中文字幕有码在线播放| 精品一区二区三区免费| 国产精品成人久久电影| 国产剧情在线观看一区| 成人免费午夜电影| 91九色美女在线视频| 伊人青青综合网站| 国产xxxx在线观看| 色综合一区二区| 三级全黄做爰视频| 99久久亚洲一区二区三区青草| 久久婷婷国产91天堂综合精品| 久久久久国产| 久久久久久高清| 91精品福利观看| 97碰在线观看| 黄色网在线免费观看| 日韩大片免费观看视频播放| 曰批又黄又爽免费视频| 亚洲成av人片一区二区三区| 亚洲精品国产精品国自| 成人白浆超碰人人人人| 亚洲 欧美 日韩系列| 在线观看不卡| 在线观看成人一级片| 秋霞在线一区| 亚洲综合av影视| 经典三级一区二区| 欧美精品成人91久久久久久久| 国内精品在线视频| 亚洲精品在线三区| 国产又粗又长又黄| 一本久久a久久精品亚洲| 国产a免费视频| 国产精品女主播av| 三上悠亚影音先锋| 成人福利视频网站| 爱豆国产剧免费观看大全剧苏畅| 亚洲影音一区| 国产无限制自拍| 欧美不卡高清| 在线看无码的免费网站| 精品一区二区三区在线| 久久久久久亚洲精品不卡4k岛国| 日本精品一区二区三区在线观看视频| 国产精品精品视频一区二区三区| 蜜桃视频www网站在线观看| 欧美日韩国产二区| 中文字幕有码在线视频| 日韩在线播放av| av一本在线| 亚洲欧美日韩网| 欧洲一级在线观看| 亚洲精品美女在线| 黄色av小说在线观看| 日韩一级免费观看| 国产成年妇视频| 欧美精品xxxxbbbb| 亚洲永久精品视频| 欧美日韩1区2区| 国产精品久久无码一三区| 欧美日韩精品二区第二页| 波多野结衣在线观看视频| 狠狠色香婷婷久久亚洲精品| 成人毛片18女人毛片| 精品国产福利视频| 久久黄色精品视频| 日韩欧美国产一区二区| 九九精品免费视频| 色婷婷av久久久久久久| 波多野结衣家庭主妇| 在线一区二区三区四区| 中文在线观看av| 欧美美女一区二区在线观看| 国产精品一区二区黑人巨大| 这里只有精品99re| www.看毛片| 亚洲成人精品视频| 日本不卡免费播放| 国产一级揄自揄精品视频| yourporn在线观看中文站| 中国日韩欧美久久久久久久久| 在线观看免费版| 久久夜色精品国产亚洲aⅴ| 青草在线视频| 91高清在线免费观看| 黑人巨大亚洲一区二区久| 国产精品电影一区| 96sao精品免费视频观看| 99热在线国产| 亚洲精品中文字幕99999| 日韩在线第一区| 91tv官网精品成人亚洲| 欧美日韩福利在线| 久久视频一区| 日韩欧美国产片| 国产高清在线精品| 中文字幕 亚洲一区| 日本一区二区成人| 永久免费看黄网站| 欧美日韩国产影院| 在线观看中文字幕2021| 欧美大片拔萝卜| 欧美孕妇性xxxⅹ精品hd| 中文字幕亚洲激情| 国产蜜臀一区二区打屁股调教| 欧美在线不卡区| 在线视频成人| 久久亚洲高清| 亚洲成av人片乱码色午夜| 男人日女人视频网站| 奇米一区二区三区av| 91视频免费入口| 国产午夜精品一区二区三区嫩草| 四虎精品免费视频| 欧美网站在线观看| 国产视频一二三四区| 亚洲精品在线观看www| 国产原厂视频在线观看| 欧美在线视频a| 欧美影院在线| 日韩偷拍一区二区| 亚洲免费精品| 中文字幕在线视频精品| 久久婷婷成人综合色| 国产精品成人免费观看| 欧美色国产精品| 无码精品黑人一区二区三区| 久久影视电视剧免费网站清宫辞电视 | 国产女人18毛片水真多成人如厕| 欧美被狂躁喷白浆精品| 欧美亚一区二区| 午夜影院免费视频| 久久99久久99精品免观看粉嫩| 日韩经典一区| 精品久久一区二区三区蜜桃| 女同性一区二区三区人了人一| 自拍偷拍 国产| 久久众筹精品私拍模特| 久久在线视频精品| 欧美一区二区三区日韩视频| 99精品老司机免费视频| 国产精品av在线播放| 先锋影音国产精品| 91精品国产91久久久久麻豆 主演| 激情五月婷婷综合网| 五月激情四射婷婷| 色偷偷久久人人79超碰人人澡 | 99久久综合99久久综合网站| 超碰手机在线观看| 7777精品伊人久久久大香线蕉 | 2019亚洲男人天堂| 91精品导航| 欧美交换配乱吟粗大25p| 国产综合色产在线精品| 5566中文字幕| 欧美日韩国产美女| 最近高清中文在线字幕在线观看| 国产精品91视频| 欧美人与物videos另类xxxxx| 亚洲 欧美 日韩 国产综合 在线| 成人美女在线视频| 久久精品国产av一区二区三区| 日韩欧美视频一区| 超免费在线视频| 国产另类第一区| 99视频在线精品国自产拍免费观看| 秘密基地免费观看完整版中文| 亚洲图片自拍偷拍| 狠狠躁夜夜躁av无码中文幕| 久久久久久亚洲精品中文字幕| youjizz亚洲| 免费一级特黄毛片| 91在线观看污| 黄色片中文字幕| 在线观看91久久久久久| 日韩综合久久| 久久视频免费在线| 国产a区久久久| 日韩欧美不卡视频| 亚洲乱码一区二区| 台湾成人免费视频| 最近看过的日韩成人| 国产高清在线精品| 奇米影视第四色777| 国产午夜精品美女视频明星a级| 99久久精品一区二区成人| 久久久一二三四| 成人午夜激情影院| 无码人妻aⅴ一区二区三区有奶水| 亚洲人在线视频| 日韩综合久久| www在线观看免费| 国产午夜久久久久| 国产成人a人亚洲精品无码| 欧美激情在线播放| 免费成人av| 日本黄色福利视频| 亚洲成人一区在线| 国产爆初菊在线观看免费视频网站 | 国产一级淫片a| 亚洲人av在线影院| 精品中文视频| 国产熟女高潮视频| 亚洲视频1区2区| 青青草娱乐在线| 亚洲va欧美va国产综合久久| 亚洲美女啪啪| 日本 欧美 国产| 亚洲国产欧美一区二区丝袜黑人 | 热久久一区二区| 久久国产精品波多野结衣av| 亚洲欧洲在线视频| 天堂久久av| 国产精品入口免费软件| 夜色激情一区二区| 999国产在线视频| 精品欧美一区二区久久久伦| 精品一区二区三区的国产在线播放 | 97在线精品|