获取旋转事件,但停止旋转视图

时间:2018-08-10 09:06:59

标签: android rotation glsurfaceview

我有一个具有以下值的活动:

        <activity
            android:name=".ActivityA"
            android:configChanges="keyboardHidden|orientation|screenSize|screenLayout"
            android:theme="@style/Theme.AppCompat.Light.NoActionBar"
            android:screenOrientation="landscape">
        </activity>

如果方向发生更改,我想阻止Android OS重新调整整个版式的大小。我可以以某种方式关闭此功能吗?-这样,在方向改变时,我总是得到一个相同的布局,但是此事件仍会触发:

@Override
    public void onConfigurationChanged(Configuration _newConfig){
        super.onConfigurationChanged(_newConfig);
        // DO SOMETHING
    }

确切地说,我有一个涵盖整个活动的GLSurfaceView。倾斜设备后,我的视图将调整为横向/纵向。我可以通过这样锁定它来解决此问题:

android:screenOrientation="landscape"

但是,onConfigurationChanged-event将不再被触发。我需要该事件以便继续在其他线程中使用此数据,但是我完全不希望GLView在倾斜设备时自动调整大小。

有什么办法可以关闭此调整大小?

进一步:我已经通过捕捉OrientationEventListener的旋转来处理我的方向。但这有点困难,因为方向更改最终变得非常激进和快速。还有另一个问题:您知道Android OS如何处理旋转值以实现平滑的方向变化。

简而言之-我想自己处理GLSurfaceView旋转-但我需要一个好的方向改变算法。这意味着我想自己更改视图,但要像Android操作系统一样平滑。

Here是我已经在iOS平台上解决的相同问题...

0 个答案:

没有答案