当前位置: 首页 > 面试题库 >

在Android中更改特定页面的方向

裘嘉木
2023-03-14
问题内容

我正在Qt和C
++中开发一个Android应用程序。我的整个应用程序都是纵向的,但是当我播放视频时,我想将方向更改为横向,并且在视频结束后应该再次更改为纵向。

因此,问题是如何在Android的Qt / C ++应用程序中将屏幕设置为横向或纵向模式。


问题答案:

可以使用setRequestedOrientationJava函数更改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);


 类似资料:
  • 我有一个从LibreOffice Writer导出的PDF文件。这里有一个例子。一些页面具有纵向,其他页面具有横向。我正在使用Linux,当我在evice或Foxit Reader中查看文件时,它会正确显示,即所有文本行都是水平的。它也可以在我的打印机上用A4纸正确打印:横向页面逆时针旋转90度,使文本行垂直。 问题是:文档将在另一台设备(出版商中)上打印,我被告知所有页面都必须具有纵向方向。我不

  • Adobe Illustrator 通常使用所选打印机的 PPD 文件定义的默认页面大小。但可以把介质尺寸改为 PPD 文件中所列的任一尺寸,并且可指定纵向(垂直)还是横向(水平)。可指定的最大页面大小取决于照排机的最大可成像面积。 注意:在“打印”对话框中更改页面大小和方向,只能用于打印目的。若要更改画板的页面大小或方向,请使用“画板选项”对话框或控制面板中的“画板”选项。(请参阅编辑画板。)

  • 我对Android很陌生,正在做我自己的迷你项目,我想改变一个特定像素的颜色。在寻找如何做到这一点时,我在几年前遇到了这个问题。我尝试了myBitmap。setPixel(10,10,Color.rgb(45,127,0)) ,但当我在手机上激活它时,我激活这行代码的那一刻它就崩溃了。每当我与位图交互时,它似乎就会崩溃<代码>int x=myBitmap。getHeight() 这一行也会使应用程

  • 我想更改PDF文档中特定几页的页面方向。PDF文档是使用html2pdf在html模板外创建的。它是这样的:如果页面的内容(通常是一个表格)太宽而不能以纵向显示,则以横向显示页面。 按照[如何将页面旋转为横向,页面内容应该为纵向iTextpdf][1]中的提示 [1]:如何将页面旋转成横向,页面内容应该在纵向iTextpdf中我已经创建了我的自定义标签和TagWorker。 } 问题是:首先,这没

  • 我有一个视图寻呼机,它的适配器上有片断列表。这就是我想要实现的场景: 假设我们有4个片段:Fragment1 Fragment2 Fragment3 Fragment4 我想在从Fragment4中滑动时跳过fragment3。 任何帮助都是非常感谢的。非常感谢你

  • 本文向大家介绍Git 提交特定文件中的更改,包括了Git 提交特定文件中的更改的使用技巧和注意事项,需要的朋友参考一下 示例 您可以使用以下命令提交对特定文件的更改,并跳过暂存文件git add: 或者,您可以首先暂存文件: 稍后再提交: