如何改变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;            }        }





更多相关文章

  1. Android中的动画
  2. 高通平台Android(安卓)N SystemUI添加qcnvitems qcrilhook
  3. android中修改tablayout中的字体大小和颜色
  4. android底部中间凸出导航 BottomProtruding
  5. android-使App全屏 - 随心
  6. Phone双模修改涉及文件列表
  7. android 4.2 修改默锁屏为无
  8. AndroidStudio用gradle编译中文乱码
  9. android 底部菜单写法之FragmentTabHost

随机推荐

  1. Android使用MediaCodec将YUV硬编成H264
  2. Android中Log机制详解
  3. system.img镜像转换为system.new.dat + s
  4. Android(安卓)WebRTC使用解析
  5. Android(安卓)设置StatusBar的颜色
  6. [Android] 压缩图片并保存
  7. android利用Intent.ACTION_SEND实现简单
  8. 使用命令行编译Qt Android(安卓)apps
  9. 让背景小图不是拉伸而是多个重复
  10. android eclipse setup