1. 程式人生 > >為不同解析度的手機建立介面

為不同解析度的手機建立介面

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>中.