为不同分辨率的手机创建界面
生活随笔
收集整理的這篇文章主要介紹了
为不同分辨率的手机创建界面
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
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>中.
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>中.
總結
以上是生活随笔為你收集整理的为不同分辨率的手机创建界面的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 芯片前端设计工程师
- 下一篇: 苏宁安全架构演进及实践