这个写的很好:http://www.cnblogs.com/mybkn/articles/2535519.html
1.
屏幕方向:
横屏竖屏自动切换:
可以在res目录下建立layout-port和layout-land两个目录,里面分别放置竖屏和横屏两种布局文件,这样在手机屏幕方向变化的时候系统会自动调用相应的布局文件,避免一种布局文件无法满足两种屏幕显示的问题。
不切换:
以下步骤是网上流传的,不过我自己之前是通过图形化界面实现这个配置,算是殊途同归,有空我会把图片贴上来。
还要说明一点:每个activity都有这个属性screenOrientation,每个activity都需要设置,可以设置为竖屏(portrait),也可以设置为无重力感应(nosensor)。
要让程序界面保持一个方向,不随手机方向转动而变化的处理办法:
在AndroidManifest.xml里面配置一下就可以了。加入这一行android:screenOrientation="landscape"。
例如(landscape是横向,portrait是纵向):
Java代码:
package="com.ray.linkit"
android:versionCode="1"
android:versionName="1.0">
android:label="@string/app_name"
android:screenOrientation="portrait">
android:screenOrientation="portrait">
android:screenOrientation="portrait">
另外,android中每次屏幕的切换动会重启Activity,所以应该在Activity销毁前保存当前活动的状态,在Activity再次Create的时候载入配置,那样,进行中的游戏就不会自动重启了!
有的程序适合从竖屏切换到横屏,或者反过来,这个时候怎么办呢?可以在配置Activity的地方进行如下的配置android:screenOrientation=\"portrait\"。这样就可以保证是竖屏总是竖屏了,或者landscape横向。
而有的程序是适合横竖屏切换的。如何处理呢?首先要在配置Activity的时候进行如下的配置:android:configChanges=\"keyboardHidden|orientation\",另外需要重写Activity的onConfigurationChanged方法。实现方式如下,不需要做太多的内容:
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
// land do nothing is ok
} else if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) {
// port do nothing is ok
}
}
2.模拟器上的配置
|
Low density (120), ldpi
|
Medium density (160), mdpi
|
High density (240), hdpi
|
Small screen
|
QVGA (240x320)
|
|
|
Normal screen
|
WQVGA400 (240x400)WQVGA432 (240x432)
|
HVGA (320x480)
|
WVGA800 (480x800)WVGA854 (480x854)
|
Large screen
|
|
WVGA800* (480x800)WVGA854* (480x854)
|
|
单位:像素
WVGA854: 854*480
WVGA800: 800*480
HVGA: 640*480
QVGA: 320*240
WQVGA432:432*240
WQVGA400:400*240
Android3.0 WXGA:800*128
3.