首页>
技术资讯>
详情

Android中通过按键旋转屏幕(2)

2016-05-22 来源:CloudBest 阅读量: 1
关键词: 手机游戏程序设计

    } else {
    ro = ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE;
    }
    }
    catch (RemoteException e) {
    Log.v(TAG, "!!! getRotation fail !!!");
    }
    try {
    //旋转屏幕
    mWindowManager.setRotation(ro, true, Surface.FLAGS_ORIENTATION_ANIMATION_DISABLE);
    //最后可跟不同的参数,可实现一些旋转效果
    }
    catch (RemoteException e) {
    Log.v(TAG, "!!! mWindowManager.setRotation fail !!!");
    }
    return true;
    }
    if(!down) {
    MenuKeyUp = true;
    }
    }
    2 修改实现选择的函数
    /frameworks/base/services/java/com/android/server/WindowManagerService.java
    找到该函数
    public boolean setRotationUncheckedLocked(int rotation, int animFlags)
    将以下妨碍选择的内容注释掉
    //rotation = mPolicy.rotationForOrientationLw(mForcedAppOrientation,
    // mRotation, mDisplayEnabled);
    3、当然也可以新作一个rotate键来选择屏幕,以下是引用代码
    + } else if (code == KeyEvent.KEYCODE_ROTATE) {
    + // ROTATE KEY pressed
    + if (down) {
    + mButtonPushFlg = true;
    +
    + try {
    + int ro = mWindowManager.getRotation(); // Orientation vertical
    + if (ro == 3 ) {
    + mWindowManager.setRotation (Surface.ROTATION_0,true,mFancyRotationAnimation); //Orientation
    landscape
    + } else {
    + mWindowManager.setRotation
    (Surface.ROTATION_270,true,mFancyRotationAnimation); //Orientation
    portlate
    + }
    + } catch (RemoteException e) {
    + // Igbore
    + Log.i("info", "Rotation failed ");
    + }
    + }
    + return true;
    }
    OK,重新编译后,长按Menu键即可实现屏幕旋转。

热门推荐 查看更多