本文主要讲android3.2以后对屏幕转屏的修改,至于3.2以前很多文章已经说过,如http://blog.csdn.net/tsk/article/details/6633905
android3.2以后所做的修改如下:
1.即使在代码中写setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE));或者在xml中添加属性android:screenOrientation=”landscape”,但是3.2以后,这样的修改只能设置当前的朝向,一旦用户实际的朝向改变,屏幕还是会发生相应的改变。要想使屏幕朝向一直固定,就必须在onconfigurationChanged里添加
//每次改变朝向都把它改回横屏
if(currentOrientation!=Configuration.ORIENTATION_LANDSCAPE)
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
2.3.2以前在xml中只要给activity添加属性android:configChanges=”keyboardHidden|orientation”,那么就能够在转屏时不重新调用oncreate,但是3.2以后系统还会考虑screenSize参数,所以仅仅如此是不够的。必须修改为android:configChanges="keyboardHidden|orientation|screenSize"。而且必须在project.property文件中修改target为target=android-13,因为screenSize只在3.2以后才存在。