我正在Qt和C ++中开发一个Android应用程序。我的整个应用程序都是纵向的,但是当我播放视频时,我想将方向更改为横向,并且在视频结束后应该再次更改为纵向。
因此,问题是如何在Android的Qt / C ++应用程序中将屏幕设置为横向或纵向模式。
可以使用setRequestedOrientation
Java函数更改Android上的屏幕方向,因此您应该从应用中调用Java函数。要在Qt Android应用程序中运行Java代码,您应该使用Qt Android Extras模块,该模块包含用于在Android上进行开发的其他功能。
您可以使用JNI从C / C ++调用Java函数或从Java回调C / C ++函数。
在这里,您可以在静态Java方法中使用它,例如:
package com.MyApp;
public class OrientationChanger
{
public static int change(int n)
{
switch(n)
{
case 0:
setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
break;
case 1:
setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
break;
}
}
}
首先,您需要将其添加到您的.pro文件中:
QT += androidextras
并包括相关的头文件:
#include <QAndroidJniObject>
然后,您可以从C ++代码中调用此静态Java函数。
要将方向更改为横向模式:
bool retVal = QAndroidJniObject::callStaticMethod<jint>
("com/MyApp/OrientationChanger" // class name
, "change" // method name
, "(I)I" // signature
, 0);
要将方向更改为纵向模式:
bool retVal = QAndroidJniObject::callStaticMethod<jint>
("com/MyApp/OrientationChanger" // class name
, "change" // method name
, "(I)I" // signature
, 1);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句