转屏功能开发
场景介绍
实现客户端横竖屏切换。
前提条件
指令流引擎启动成功。
开发流程
在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开发过程