android 代码横屏,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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值