android4.0强制横屏竖屏 刺骨的言语ヽ痛彻心扉 2022-06-15 01:49 253阅读 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 [Java]: http://lib.csdn.net/base/javase [Android]: http://lib.csdn.net/base/android
还没有评论,来说两句吧...