咖啡伴侶

          呆在上海
          posts - 163, comments - 156, trackbacks - 0, articles - 2

          Android自適應屏幕方向、大小和分辨率 轉

          Posted on 2011-09-02 09:28 oathleo 閱讀(1253) 評論(0)  編輯  收藏 所屬分類: Android

          屏幕大小
          1、不同的layout

                Android手機屏幕大小不一,有480x320,640x360,800x480.怎樣才能讓App自動適應不同的屏幕呢? 其實很簡單,只需要在res目錄下創建不同的layout文件夾,比如:layout-640x360,layout-800x480,所有的 layout文件在編譯之后都會寫入R.java里,而系統會根據屏幕的大小自己選擇合適的layout進行使用。

          2、hdpi、mdpi、ldpi

                前的版本中,只有一個drawable,而2.1版本中有drawable-mdpi、drawable-ldpi、drawable-hdpi三個,這三個主要是為了支持多分辨率。

          drawable- hdpi、drawable- mdpi、drawable-ldpi的區別:

          1.drawable-hdpi里面存放高分辨率的圖片,如WVGA (480x800),FWVGA (480x854)
          2.drawable-mdpi里面存放中等分辨率的圖片,如HVGA (320x480)
          3.drawable-ldpi里面存放低分辨率的圖片,如QVGA (240x320)
          系統會根據機器的分辨率來分別到這幾個文件夾里面去找對應的圖片。在開發程序時為了兼容不同平臺不同屏幕,建議各自文件夾根據需求均存放不同版本圖片。

          屏幕方向
          1、橫屏豎屏自動切換

                可以在res目錄下建立layout-port和layout-land兩個目錄,里面分別放置豎屏和橫屏兩種布局文件,這樣在手機屏幕方向變化的時候系統會自動調用相應的布局文件,避免一種布局文件無法滿足兩種屏幕顯示的問題。

          2、禁用自動切換

          只需要在AndroidManifest.xml文件中加入android:screenOrientation屬性限制。

          •Android:screenOrientation="landscape"  //是限制此頁面橫屏顯示
          •Android:screenOrientation="portrait"      //是限制此頁面數豎屏顯示
          字體自適應大小
          方法1:

          首先根據不同分辨率獲取不同字體大小。
          在RES里創建
          values-480x320/strings.xml 里面設置<dimen name="Text_size">30px</dimen>

          values-800x400/strings.xml 里面設置<dimen name="Text_size">30px</dimen>

          分別代表480X320 和 800X400分辨率情況下 字號為30px和40px;

          在java文件中這樣調用

          int sizeOfText = (int) this.getResources().getDimension(R.dimen.Text_size);

          方法2:

          在視圖的 onsizechanged里獲取視圖寬度,一般情況下默認寬度是320,所以計算一個縮放比率rate = (float) w/320   w是實際寬度
          然后在設置字體尺寸時 paint.setTextSize((int)(8*rate));   8是在分辨率寬為320 下需要設置的字體大小實際字體大小 = 默認字體大小 x  rate

          主站蜘蛛池模板: 喜德县| 柳江县| 云梦县| 兴安县| 六盘水市| 宁津县| 乡城县| 饶河县| 老河口市| 昌平区| 湘西| 新乐市| 台中市| 宁晋县| 凌海市| 白山市| 德令哈市| 昔阳县| 岗巴县| 平果县| 灌云县| 顺义区| 祁门县| 镇沅| 安阳县| 德钦县| 夏津县| 珠海市| 阜康市| 卢龙县| 无为县| 湛江市| 海口市| 武鸣县| 张掖市| 祁连县| 策勒县| 亚东县| 龙门县| 兰考县| 永春县|