android4.0强制横屏竖屏

来源:互联网 发布:淘宝企业店铺优势缺点 编辑:程序博客网 时间:2024/06/06 04:02

方法一: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

原创粉丝点击