Android屏幕翻转180度,然后旋转至正确方向

Android屏幕翻转180度,然后旋转至正确方向,android,rotation,screen,Android,Rotation,Screen,由于硬件问题,我们必须将开发的Android平板电脑上下180度安装。我们通过进行以下更改,将屏幕翻转回正确的方向: “frameworks/base/services/surfaceflinger/surfaceflinger.cpp” void GraphicPlane::setDisplayHardware(DisplayHardware*hw) . . displayOrientation=ISurfaceComposer::eOrientation90; 打破 +案例180: +dis

由于硬件问题,我们必须将开发的Android平板电脑上下180度安装。我们通过进行以下更改,将屏幕翻转回正确的方向:

“frameworks/base/services/surfaceflinger/surfaceflinger.cpp”

void GraphicPlane::setDisplayHardware(DisplayHardware*hw) . . displayOrientation=ISurfaceComposer::eOrientation90; 打破 +案例180: +displayOrientation=ISurfaceComposer::eOrientation180//cdh +中断; 案例270: displayOrientation=ISurfaceComposer::eOrientation270; 中断

“system/core/rootdir/init.rc”

看起来一切正常,但不知何故,屏幕将翻转180度,然后在旋转过程中显示正确的方向。该平板电脑在安卓IC上运行,带有陀螺仪和加速度传感器

我尝试从“frameworks/base/core/jave/android/view/WindowOrientationListener.java”检查窗口方向侦听器日志,并确保旋转期间的方向正确

我对传感器轴方向做了一些更改(在传感器驱动程序上),但不知何故,这并没有帮助。有什么建议可以帮助解决这个问题吗

感谢所有评论

谢谢, MM

看看“frameworks/base/services/surfaceflinger/LayerScreenshot.cpp”及其方法:“LayerScreenshot::initTexture”。修改这些参数:

mTexCoords[0] = 0;         mTexCoords[1] = v;
mTexCoords[2] = 0;         mTexCoords[3] = 0;
mTexCoords[4] = u;         mTexCoords[5] = 0;
mTexCoords[6] = u;         mTexCoords[7] = v;
作为:

或者其他可以解决你的问题的人。
希望能对您有所帮助

谢谢您的建议。我通过在frameworks/base/services/java/com/android/server/wm/ScreenRotationAnimation.java文件的createRotationMatrix()旋转开关中交换矩阵旋转(0 180;90 270)来解决这个问题。屏幕现在可以正确平稳地旋转。
mTexCoords[0] = 0;         mTexCoords[1] = v;
mTexCoords[2] = 0;         mTexCoords[3] = 0;
mTexCoords[4] = u;         mTexCoords[5] = 0;
mTexCoords[6] = u;         mTexCoords[7] = v;
mTexCoords[0] = u;         mTexCoords[1] = 0;
mTexCoords[2] = u;         mTexCoords[3] = v;
mTexCoords[4] = 0;         mTexCoords[5] = v;
mTexCoords[6] = 0;         mTexCoords[7] = 0;