android如何改变默认横竖屏方向

如何改变android默认的横竖屏,修改源码一个地方就可以了。


 public int rotationForOrientationLw(int orientation, int lastRotation,
            boolean displayEnabled) {

        if (mPortraitRotation < 0) {
            // Initialize the rotation angles for each orientation once.
            Display d = ((WindowManager)mContext.getSystemService(Context.WINDOW_SERVICE))
                    .getDefaultDisplay();
            if (d.getWidth() > d.getHeight()) {
                mPortraitRotation = Surface.ROTATION_90;
                mLandscapeRotation = Surface.ROTATION_0;
                mUpsideDownRotation = Surface.ROTATION_270;
                mSeascapeRotation = Surface.ROTATION_180;
            } else {
                mPortraitRotation = Surface.ROTATION_0;
                mLandscapeRotation = Surface.ROTATION_90;
                mUpsideDownRotation = Surface.ROTATION_180;
                mSeascapeRotation = Surface.ROTATION_270;
            }
        }

		{
			Log.i(TAG, "MediaPlayer.is not PlayingVideo");
	        synchronized (mLock) {
	            switch (orientation) {
	                case ActivityInfo.SCREEN_ORIENTATION_PORTRAIT:
	                    //always return portrait if orientation set to portrait
	                    //return mPortraitRotation;
	                    return mUpsideDownRotation;
	                case ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE:
	                    //always return landscape if orientation set to landscape
	                    return mLandscapeRotation;
	                case ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT:
	                    //always return portrait if orientation set to portrait
	                    //return mUpsideDownRotation;
						return mPortraitRotation;
	                case ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE:
	                    //always return seascape if orientation set to reverse landscape
	                    return mSeascapeRotation;
	                case ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE:
	                    //return either landscape rotation based on the sensor
	                    mOrientationListener.setAllow180Rotation(
	                            isLandscapeOrSeascape(Surface.ROTATION_180));
	                    return getCurrentLandscapeRotation(lastRotation);
	                case ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT:
	                    mOrientationListener.setAllow180Rotation(
	                            !isLandscapeOrSeascape(Surface.ROTATION_180));
	                    return getCurrentPortraitRotation(lastRotation);
	            }

	            mOrientationListener.setAllow180Rotation(
                    orientation == ActivityInfo.SCREEN_ORIENTATION_FULL_SENSOR
                    || orientation == ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED);

	            // case for nosensor meaning ignore sensor and consider only lid
	            // or orientation sensor disabled
	            //or case.unspecified
	            if (mLidOpen) {
	                return mLidOpenRotation;
	            } else if (mDockMode == Intent.EXTRA_DOCK_STATE_CAR && mCarDockRotation >= 0) {
	                return mCarDockRotation;
	            } else if (mDockMode == Intent.EXTRA_DOCK_STATE_DESK && mDeskDockRotation >= 0) {
	                return mDeskDockRotation;
	            } else {
	                if (useSensorForOrientationLp(orientation)) {
	                    return mOrientationListener.getCurrentRotation(lastRotation);
	                }
	                return Surface.ROTATION_0;
	            }
	        }
	}
    }

修改上面倒数一行代码把return Surface.ROTATION_0改为你要的方向,记得这个要和上面的匹配,宽高不同,Surface.ROTATION_0也不同。因为代码开头就有

        if (mPortraitRotation < 0) {
            // Initialize the rotation angles for each orientation once.
            Display d = ((WindowManager)mContext.getSystemService(Context.WINDOW_SERVICE))
                    .getDefaultDisplay();
            if (d.getWidth() > d.getHeight()) {
                mPortraitRotation = Surface.ROTATION_90;
                mLandscapeRotation = Surface.ROTATION_0;
                mUpsideDownRotation = Surface.ROTATION_270;
                mSeascapeRotation = Surface.ROTATION_180;
            } else {
                mPortraitRotation = Surface.ROTATION_0;
                mLandscapeRotation = Surface.ROTATION_90;
                mUpsideDownRotation = Surface.ROTATION_180;
                mSeascapeRotation = Surface.ROTATION_270;
            }
        }





  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值