android中使用DisplayMetrics获取屏幕参数
--關(guān)于Density
int android.graphics.Bitmap.getDensity(),返回bitmap-density(密度)。默認(rèn)的density就是當(dāng)前display-density,除非當(dāng)前應(yīng)用程序不支持不同的screen-density。
在android.util.DisplayMetrics類中定義了一些變量和常量。
--常量DENSITY_XXX,
int類型,定義了不同級別的密度對應(yīng)的dpi數(shù)值,
低密度,DENSITY_LOW,120,
中密度,DENSITY_MEDIUM,160,
高密度,DENSITY_HIGH,240,
超高密度,DENSITY_XHIGH,320,
默認(rèn)密度,DENSITY_DEFAULT,160(即中密度)。
--變量widthPixels和heightPixels,
int類型,單位像素,display的absolute-width和absolute-height。
--變量density,
float類型,display的logic-density。是一個(gè)scaling-factor,用在Density-Independent-Pixel單位,一個(gè)dip就是一個(gè)像素。
160dpi的screen提供系統(tǒng)display的baseline。
因此,160dpi的screen-density值為1(160/160),120dpi的screen-density值為0.75(120/160)。
screen-1,已知240x320,1.5"x2" ,可以計(jì)算出densityDpi等于160。即240/1.5=160,或320/2=160。再通過densityDpi/160計(jì)算出density的值1.0。
screen-2,已知320x480,1.5"x2",可以計(jì)算出densityDpi等于240。即320/1.5=240,或480/2=240。再通過densityDpi/160計(jì)算出density的值1.5。
--變量densityDpi,
int類型,dots-per-inch。
--關(guān)于分辨率和尺寸
分辨率是手機(jī)長和寬方向上的像素個(gè)數(shù),
尺寸是指屏幕的實(shí)際物理大小,
手機(jī)尺寸手機(jī)尺寸115.5×61×12.45解析得長115.5毫米,寬61毫米,高12.45毫米。
1英寸(inch)等于2.54厘米,
--獲取DisplayMetrics對象,再獲取屏幕的參數(shù)
DisplayMetrics displaysMetrics = new DisplayMetrics();?
getWindowManager().getDefaultDisplay().getMetrics(displaysMetrics);
--關(guān)于scaledDensity
float類型,一個(gè)scaling-factor,用于fonts顯示,同density相同的值,除非由于基于font-size上的體驗(yàn)需要做微調(diào)。
--TyuMainApp.getApp().getResources().getDisplayMetrics()對象中的屬性值
--本機(jī)上調(diào)試時(shí)記錄的數(shù)據(jù)
DENSITY_DEFAULT??? 160????
DENSITY_DEVICE??? 240????
DENSITY_HIGH??? 240????
DENSITY_LOW??? 120????
DENSITY_MEDIUM??? 160????
DENSITY_TV??? 213????
DENSITY_XHIGH??? 320????
density: 1.5, sclaedDensity: 1.5?
densityDpi: 240????
heightPixels: 800, widthPixels: 480
xdpi: 160.42105, ydpi: 160
總結(jié)
以上是生活随笔為你收集整理的android中使用DisplayMetrics获取屏幕参数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java多线程之ReentrantRea
- 下一篇: HTTP 错误 404.3 – Not