標籤:android blog http io ar 使用 java sp 檔案
最近感覺要被螢幕適配玩死了……
安卓的手機為蝦米不能像蘋果那樣只有幾個解析度呢?為什麼呢!!!!!!!阿門……
目前想到有兩種解決辦法……
第一種:
HTML5+CSS3+WebView互動……目前還在研究,空了放demo
第二種:
通過安卓UI自己的layout來處理:
1.螢幕介面布局
在 res 目錄下建立不同的 layout(drawable也支援)檔案夾,比如 layout-640x360 、layout-800x480 ,所有的 layout 檔案在編譯之後都會寫入 R.java 裡,而系統將根據螢幕的大小自己選擇合適的 layout 進行使用
2.多解析度支援
支援多解析度有 mdpi、ldpi、hdpi 3個檔案。
hdpi 裡面存放高解析度的圖片,如 WVGA (480x800),FWVGA (480x854) ;(PS:偶很糾結480*854的解析度,糾結啊!!!!)
mdpi 裡面存放中等解析度的圖片,如 HVGA (320x480) ;
ldpi 裡面存放低解析度的圖片,如 QVGA (240x320) 。
系統將根據機器的解析度來分別到這幾個檔案夾裡面去找對應的圖片,在程式開發中,為了相容不同平台不同螢幕,建議將不同版本圖片根據需求存放在各自對應的檔案夾中。
3.獲得螢幕大小
Java代碼
- DisplayMetrics metric = new DisplayMetrics();
- getWindowManager().getDefaultDisplay().getMetrics(metric);
- int width = metric.widthPixels; // 螢幕寬度(像素)
- int height = metric.heightPixels; // 螢幕高度(像素)
- float density = metric.density; // 螢幕密度(0.75 / 1.0 / 1.5)
- int densityDpi = metric.densityDpi; // 螢幕密度DPI(120 / 160 / 240)
話說在一個低密度的小屏手機上,僅靠上面的代碼是不能擷取正確的尺寸的。所以,需要在工程的AndroidManifest.xml檔案中,加入supports-screens節點,具體的內容如下:
Xml代碼
- <supports-screens
- android:smallScreens="true"
- android:normalScreens="true"
- android:largeScreens="true"
- android:resizeable="true"
- android:anyDensity="true" />
4.還有自動橫屏之類的,不準備支援了……恩~阿門……android:screenOrientation="portrait"全部豎著…
Android 螢幕自適應方向尺寸