Android 螢幕自適應方向尺寸

來源:互聯網
上載者:User

標籤: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代碼  
  1. DisplayMetrics metric = new DisplayMetrics();  
  2.        getWindowManager().getDefaultDisplay().getMetrics(metric);  
  3.        int width = metric.widthPixels;  // 螢幕寬度(像素)  
  4.        int height = metric.heightPixels;  // 螢幕高度(像素)  
  5.        float density = metric.density;  // 螢幕密度(0.75 / 1.0 / 1.5)  
  6.        int densityDpi = metric.densityDpi;  // 螢幕密度DPI(120 / 160 / 240)  


    話說在一個低密度的小屏手機上,僅靠上面的代碼是不能擷取正確的尺寸的。所以,需要在工程的AndroidManifest.xml檔案中,加入supports-screens節點,具體的內容如下: 
  

Xml代碼  
  1. <supports-screens  
  2.        android:smallScreens="true"  
  3.        android:normalScreens="true"  
  4.        android:largeScreens="true"  
  5.        android:resizeable="true"  
  6.        android:anyDensity="true" />  


   4.還有自動橫屏之類的,不準備支援了……恩~阿門……android:screenOrientation="portrait"全部豎著…

Android 螢幕自適應方向尺寸

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.