华为cast+ 投屏时如何判断手机侧是横屏还是竖屏,想竖屏时放大画面 HarmonyOS鸿蒙Next

华为cast+ 投屏时如何判断手机侧是横屏还是竖屏,想竖屏时放大画面 HarmonyOS鸿蒙Next 使用华为cast+ 投屏的时候如何判断手机侧是横屏还是竖屏,想实现竖屏时放大一定比例

3 回复

你好,楼主可以使用mediaquery.matchMediaSync(’(orientation: landscape)’); 参考链接:媒体查询(mediaquery)-构建布局-开发布局-基于ArkTS的声明式开发范式-UI开发-开发-HarmonyOS应用开发

更多关于华为cast+ 投屏时如何判断手机侧是横屏还是竖屏,想竖屏时放大画面 HarmonyOS鸿蒙Next的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在鸿蒙Next系统中,华为Cast+投屏时判断手机侧是横屏还是竖屏,可以通过鸿蒙系统的Display类来获取屏幕方向。Display类提供了getRotation()方法,返回当前设备的旋转状态。返回值包括ROTATION_0ROTATION_90ROTATION_180ROTATION_270,分别对应设备的默认方向、顺时针旋转90度、180度和270度。

要判断当前是横屏还是竖屏,可以通过getRotation()方法的返回值结合设备的默认方向来确定。例如,如果设备默认是竖屏,ROTATION_0ROTATION_180表示竖屏,ROTATION_90ROTATION_270表示横屏。

在投屏时,可以通过WindowManager获取当前窗口的Display对象,然后调用getRotation()方法来判断屏幕方向。根据返回的旋转状态,调整投屏画面的显示方式,实现竖屏时放大画面的需求。

代码示例:

import ohos.agp.window.service.WindowManager;
import ohos.app.Context;
import ohos.hiviewdfx.HiLog;
import ohos.hiviewdfx.HiLogLabel;

public class ScreenOrientationUtil {
    private static final HiLogLabel LABEL = new HiLogLabel(HiLog.LOG_APP, 0x00201, "ScreenOrientationUtil");

    public static int getScreenRotation(Context context) {
        WindowManager windowManager = context.getSystemService(WindowManager.class);
        if (windowManager != null) {
            return windowManager.getDefaultDisplay().getRotation();
        }
        return -1;
    }

    public static boolean isPortrait(Context context) {
        int rotation = getScreenRotation(context);
        return rotation == WindowManager.Display.ROTATION_0 || rotation == WindowManager.Display.ROTATION_180;
    }
}

在投屏逻辑中,调用isPortrait()方法判断当前是否为竖屏,并根据结果调整画面显示。

在华为Cast+投屏时,判断手机侧是横屏还是竖屏,可以通过系统的屏幕方向传感器来实现。如果希望竖屏时放大画面,可以在HarmonyOS鸿蒙Next中调用相应的API,如Display.getRotation()获取当前屏幕方向,然后根据方向调整画面缩放比例。具体实现可通过监听屏幕方向变化,动态调整投屏画面的显示模式。

回到顶部