为不同分辨率的手机创建界面
2012-02-04 09:24
197 查看
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>中.
相关文章推荐
- 为不同分辨率的手机创建界面
- 为不同分辨率的手机创建界面
- Android界面布局怎么样适应不同分辨率的手机
- 使用基于ThinkPHP3.2.3的ThinkAdmin创建手机电脑通用的表白墙(二)自动判断设备以显示不同界面
- android中不同手机分辨率适配问题
- IOS开发中@2x图片等适应不同分辨率手机
- 不同分辨率界面控件的点击点
- Android手机在不同分辨率情况下字体自适应大小
- 1.Animation的使用 - 使用动画创建一个不同的登陆界面
- android中不同手机分辨率适配问题
- android适配不同分辨率的手机
- android适配不同分辨率的手机
- 适应不同分辨率的对话框界面
- Android程序对不同手机屏幕分辨率自适应的总结
- 自适应不同的分辨率界面
- 解决Winform程序在不同分辨率系统下界面混乱问题
- 手机h5适配不同分辨率的问题
- Android程序对不同手机屏幕分辨率自适应的总结
- 【Android】Android中不同手机分辨率适配问题
- Android 创建菜单项Menu及获取手机分辨率