為不同解析度的手機建立介面
1,首先進入res 資料夾下。
2,建立一個名為“layout-1024x768”資料夾,
其中1024x768 是螢幕解析度的大小,值得注意的是解析度中大的數字必須寫到前面,否
則會產生語法錯誤。如layout-768x1024 的寫法是錯誤的。
3,編寫main.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content" android:text="@string/hello" />
<TextView android:layout_width="fill_parent" android:id="@+id/tv"
android:layout_height="wrap_content" android:text="1024x768" />
</LinearLayout>
4,在按照上述建立layout-1280x800解析度的資料夾,main.xml直接拷貝。
5,分別建立1024x768和1280x800的模擬器:
6,注意在AndroidManifest.xml中新增 <supports-screens android:largeScreens="true"
android:anyDensity="true" />否則,你的應用不會全屏。
詳細見例子helloword。
7,最後,預設layout,不要刪掉,如果指定解析度不存在的時候,會預設呼叫layout中佈局檔案。如果刪除,則報錯。
字型自適應大小
方法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
舉例2:
在android開發的過程中,不同解析度的相容問題是經常遇到的.
如下,
在PAD應用開發的過程中,在PC上模擬器上執行的只是小解析度的程式,
而對於大小如同1027*768的,可能支援上不是很完美.
除了把圖片,佈局檔案放入不同的文夾中,如(drawable-mdpi, drawable-ldpi, layout-land.....)
對大螢幕的支援還需要以下配置:
<supports-screens android:smallScreens=["true" | "false"]
android:normalScreens=["true" | "false"]
android:largeScreens=["true" | "false"]
android:anyDensity=["true" | "false"] />
將以上的配置資訊新增到AndroidManifest.xml的<manifest>...</manifest>中.