日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

android鼠标dpi,对Android 中 px、DPI、dp(dip)、density的理解

發(fā)布時間:2025/4/5 Android 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android鼠标dpi,对Android 中 px、DPI、dp(dip)、density的理解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1:px

像素。一般說一個手機的分辨率為1280*720,意思就是寬度為720像素,高度為1280像素。

但是,安卓的適配不能用這種方式。

比如一個840*360的屏幕和一個1280*720的屏幕,我做了一個180px寬的布局,那么在第一個屏幕上就占據一半的寬度,在第二個屏幕上會只占據1/4的寬度。這樣無法達到適配要求。

2:DPI

既然px不能作為適配的單位,所以引入了DPI的概念。(Dots Per Inch)每英寸的點數。

舉例:現在規(guī)定有兩個手機,尺寸一樣。都是寬度為2英寸,高度為3.5英寸(瞎舉的,高度咋滴都行)

第一個手機的分辨率為:840*360。也就是在2英寸的屏幕上,有360個像素點,那么每英寸的像素點就是180個。

第二個手機的分辨率為:1280*720.也就是在2英寸的屏幕上,有720個像素點,那么每英寸的像素點就是360個。

個數就是DPI

3:dp

然后引入了dp的概念,這個dp和屏幕分辨率就木有關系了,只和DPI有關系

規(guī)定是:當dpi為160時,1dp = 1px;

以此類推:當dpi為320時,1dp = 2px;

1dp = dpi/160 px;

那么,用dp來適配,

還是那兩個屏幕,840*360的DPI為180,1280*720的DPI為360.現在來做一個寬為80dp的div吧

第一個屏幕:1dp = (180/160)px = 1.125px; 80dp = 90px

第二個屏幕:1dp = (360/160)px = 2.25px; ?80dp = 180px;

都是對應屏幕的1/4寬。這樣也就達到了適配的目的。

4:density

這個密度的值,其實就是dpi/160的值。

誒?上面說1dp = dpi/160 px.那么,1dp = density px?

在安卓中,提供了獲取density的方法

getResources().getDisplayMetrics().density

這樣,也就實現了dp和px的換算

話說為啥要換算dp和px呢?

因為,xml中既可以用px,也可以用dp

但是java代碼中,很多布局相關的單位都是px,比如:

LinearLayout.LayoutParams layoutParams =new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);

layoutParams.setMargins(10,20,30,40);

這里的margins的四個參數left,top,right,bottom的單位都是px,得換成dp

總結

以上是生活随笔為你收集整理的android鼠标dpi,对Android 中 px、DPI、dp(dip)、density的理解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。