方法一:getdefaultdisplay().geth/w() 計算結果的單位是 px
int screenwidth1 = getactivity().getwindowmanager().getdefaultdisplay().getwidth();
int screenheight1 = getactivity().getwindowmanager().getdefaultdisplay().getheight();
方法二:getresources().getdisplaymetrics().h/w 可以得到計算結果單位 dpi, px
displaymetrics dm2 = getresources().getdisplaymetrics();
float density = dm2.density;
int densitydpi = dm2.densitydpi;
float xdpi = dm2.xdpi;
float ydpi = dm2.ydpi;
int screenwidth2 = dm2.widthpixels;
int screenheight2 = dm2.heightpixels;
tvscreenheight2.settext(screenheight2+" px");
tvscreenwidth2.settext(screenwidth2+" px");
tvscreendensity2.settext(density+"");
tvscreendensitydpi2.settext(densitydpi+"");
方法三:getdefaultdisplay().getmetrics(displaymetrics).h/w 可以得到計算結果dpi,px ,dip;
displaymetrics dm3 = new displaymetrics();
getactivity().getwindowmanager().getdefaultdisplay().getmetrics(dm3);
density = dm3.density;
densitydpi = dm3.densitydpi;
xdpi = dm3.xdpi;
ydpi = dm3.ydpi;
tvscreendensity3.settext(density+"");
tvscreendensitydpi3.settext(densitydpi+"");
int screenwidth3 = dm3.widthpixels;
int screenheight3 = dm3.heightpixels;
tvscreenheight3.settext(screenheight3+" px");
tvscreenwidth3.settext(screenwidth3+" px");
float screenwidthdip = (dm3.widthpixels/density);
float screenheightdip = (dm3.heightpixels/density);
tvscreenheight4.settext(screenheightdip+" dip");
tvscreenwidth4.settext(screenwidthdip+" dip");
另附各單位轉換方法:
dip :device independent pixels ,裝置無關畫素。 我看很多帖子寫的五花八門的,關於d的,什麼display啊各種都有,既然是裝置無關,我還是覺得device靠譜。
dp就是dip
dpi :
dots per inch , 直接來說就是一英吋多少個點。常見取值 120,160,240。
我一般稱作畫素密度,簡稱密度
density :
直接翻譯的話貌似叫 密度。常見取值 1.5 , 1.0 。
解析度:橫縱2個方向的畫素點的數量,常見取值 480x800 ,320x480
螢幕尺寸:螢幕對角線的長度。電腦電視同理。
這裡還涉及另外乙個問題,就是螢幕比例的問題。因為只確定了對角線長,2邊長度還不一定。所以有了4:3、16:9這種,這樣就可以算出螢幕邊長了。
drawable-ldpi、drawable-mdpi、drawable-hdpi、drawable-xhdpi,drawable-xxhdpi,這幾個目錄對應的pppi為
120ppi 160ppi 240ppi 320ppi 480ppi
density 螢幕密度
desitydpi
px(pixels) 畫素
dip
density = densitydpi/160
px(pixels) = dip * (densitydpi/160) = dip*density
dip(device independent pixels) = dp
dip = (px * 160)/densitydpi = px / density
imageview 自適應各種螢幕尺寸
最簡單的方法 加上這個屬性 scaletype fitxy 在做的好一點,根據px轉換成dip 設定好對應屬性 android layout width 40dip android layout height 40dip 被拉伸的時候顯示會好一點。最好的辦法,還是設計好乙個,這個內容在中心內容大小可...
網頁自適應手機以及各種螢幕
自適應網頁設計 responsive web design 日期 2012年 5月 1日 隨著3g的普及,越來越多的人使用手機上網。移動裝置正超過桌面裝置,成為訪問網際網路的最常見終端。於是,網頁設計師不得不面對乙個難題 如何才能在不同大小的裝置上呈現同樣的網頁?手機的螢幕比較小,寬度通常在600畫...
自適應螢幕寬度 編寫自適應網頁的方法
有人 我說不知道怎麼寫自適應的網頁,今天就先不寫優化的了,我把寫自適應網頁的方法說下。工具 dw網頁設計軟體 ps影象處理軟體。方法 步驟 1,在之間加入加入一行viewport標籤。viewport是網頁預設的寬度和高度,上面這行 的意思是,網頁寬度預設等於螢幕寬度 width device wi...