我说的这个横竖屏切换不是指你所开发的应用程序的横竖屏切换,而是系统本身的切换。比如,android2.2系统,当你开机时,但没有解锁之前,默认是横屏的,然后你把手机竖直,这时候锁屏界面会自动跳转到竖屏,现在要解决的问题是:不让他跳转到竖屏,如何解决?根据我的理解,应该是在竖屏时,会触发传感器,传感器发送一个竖屏的信号,然后某个方法接到这个信号后会竖屏,随之上层会根据这个信号来加载相应的横竖屏布局。不知道是哪个源码里面的。请高人指点。

解决方案 »

  1.   

    某一个activity禁止横竖屏切换是在activity里申明属性android:configChanges=”keyboardHidden|orientation”
      

  2.   

    这个你估计要看看SensorManager了。
      

  3.   

    这个应该是要在开机及加锁时关闭G-sensor,解锁后打开。
    大概是要修改以下两个文件吧\frameworks\base\policy\src\com\android\internal\policy\impl\PhoneWindowManager.java
    \frameworks\base\policy\src\com\android\internal\policy\impl\KeyguardViewMediator.java等版主大大来回答吧= =~
      

  4.   

    横竖屏切换本身就不是应用程序做的,你可以看看SensorManage.java,传感器本身只是上报当前坐标或者屏幕的信息,具体处理是上层来做
      

  5.   

    在manifest.xml文件中配置一下,就ok啦!
      

  6.   

    需要禁止的activity中加上它:android:screenOrientation="landscape "(landscape 是横向,portrait 是纵向)就可以。
    缺点:如果这样设置,你在打开这个应用程序的时候,点击应用程序切换键,切到其他程序,在这个其他程序中切屏,然后再切会这个程序。一般会出错。
    解决方法:在进制切屏的activity中加上android:configChanges="keyboardHidden|orientation",然后在代码中重写:
       public void onConfigurationChanged(Configuration newConfig) {  
            super.onConfigurationChanged(newConfig); 
        }不许特殊处理的话,写上上面的就可以。