`

屏幕切换不重启activity的方法

阅读更多
    /* 声明Display对象,以取得屏幕宽高 */
    final Display defaultDisplay = getWindow().getWindowManager()
        .getDefaultDisplay();

    intScreenH = defaultDisplay.getHeight();
    intScreenW = defaultDisplay.getWidth();

    /* 如果为Landscape */
    if (intScreenW > intScreenH)
    {
      /* Landscape => Portrait */
      setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
    } else
    {
      /* Portrait => Landscape */
     setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
    }

我们可以通过屏幕方向的事件改变监听来处理
 public void onConfigurationChanged(Configuration newConfig)
  {
    // TODO Auto-generated method stub

    /* 重写onConfigurationChanged事件,捕捉当设置之后的值 */
    if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE)
    {
    }
   }

当然在配置文件里面,我们需要设置activity的这个属性:
<!-- 必須設定activity的configChanges屬性 ,不然每次都会重启Activity-->
      android:configChanges="orientation|keyboard"


但这个权限好像不需要设定了:
<!-- 貌似这个权限可以不添加 -->
	<uses-permission android:name="android.permission.CHANGE_CONFIGURATION" />

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics