您好,欢迎来到百家汽车网。
搜索
您的当前位置:首页android4.0强制横屏竖屏

android4.0强制横屏竖屏

来源:百家汽车网

方法一:android4.0/frameworks/base/services/java/com/android/server/wm/WindowManagerService.java

 int computeForcedAppOrientationLocked() {
        int req = getOrientationFromWindowsLocked();
        if (req == ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED) {
            req = getOrientationFromAppTokensLocked();
        }

        // req = ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE; //强制横屏0度

    // req = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT; //强制竖屏左转90度

        return req;
    }


方法二: (此种方法最好用)
android4.0/frameworks/base/services/surfaceflinger/SurfaceFlinger.cpp

void GraphicPlane::setDisplayHardware(DisplayHardware *hw)
{
    mHw = hw;

    // initialize the display orientation transform.

    // it's a constant that should come from the display driver.

    int displayOrientation = ISurfaceComposer::eOrientationDefault;
    char property[PROPERTY_VALUE_MAX];
    if (property_get("ro.sf.hwrotation", property, NULL) > 0) {
        //displayOrientation

        switch (atoi(property)) {
        case 0:
            displayOrientation = ISurfaceComposer::eOrientationDefault;
            break;
        case 90:
            displayOrientation = ISurfaceComposer::eOrientation90;
            break;
        case 180:
            displayOrientation = ISurfaceComposer::eOrientation180;
            break;
        case 270:
            displayOrientation = ISurfaceComposer::eOrientation270;
            break;
        }
    }
    /* 强制旋转90度 */
    displayOrientation = ISurfaceComposer::eOrientation90;

    const float w = hw->getWidth();
    const float h = hw->getHeight();
    GraphicPlane::orientationToTransfrom(displayOrientation, w, h,
            &mDisplayTransform);
}


方法三:

修改device.mk中的ro.sf.hwrotation的值为90,或在init.rc中增加一行:setprop ro.sf.hwrotation 90


因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- baijiahaobaidu.com 版权所有 湘ICP备2023023988号-9

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务