转屏功能开发
场景介绍
实现客户端横竖屏切换。
前提条件
指令流引擎启动成功。
开发流程
在orientationCallback回调函数,处理转屏功能。
编码实例
public void onVmiEngineEvent (int event, int reserved0, int reserved1, int reserved2, int reserved3) { if (event == InstructionEngine.VMI_ENGINE_EVENT_ORIENTATION_CHANGED) { engineOrientation = reserved0; runOnUiThread(new Runnable() { @Override public void run() { setRotation(engineOrientation); } }); } } private void setRotation(int rotation) { final int rota = rotation; runOnUiThread(new Runnable() { @Override public void run() { if (oritentation != rota) { oritentation = rota; switch (oritentation) { case Surface.ROTATION_0: // surfaceView ui旋转 surfaceView.setScreenRotation(InstructionEngine.Rotation.ROTATION0); // 设置屏幕的方向 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); break; case Surface.ROTATION_90: surfaceView.setScreenRotation(InstructionEngine.Rotation.ROTATION90); setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); break; case Surface.ROTATION_180: surfaceView.setScreenRotation(InstructionEngine.Rotation.ROTATION180); setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT); break; case Surface.ROTATION_270: surfaceView.setScreenRotation(InstructionEngine.Rotation.ROTATION270); setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE); break; default: break; } } } }); }
父主题: API开发过程