螢幕自適應 計算螢幕長款方法 各種單位轉換方法

2021-06-27 07:24:29 字數 2921 閱讀 4171

方法一: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...