1

HarmonyOS では、commonDialog を作成し、それに画面サイズの stackLayout を追加しようとしています。このレイアウトは、コンポーネント (画像など) を画面上の任意の場所に移動するのに役立ちます。そのためには、画面全体の幅と高さが必要ですが、これらのパラメーターを取得するにはどうすればよいですか?

4

1 に答える 1

1

コミュニティへようこそ!

画面の幅と高さの戻り型の値を int として探している場合は、私が使用するソリューションを提供しています。以下のように、HarmonyOS API を使用して画面の幅と高さを計算します。

import ohos.agp.utils.Point;
import ohos.agp.window.service.Display;
import ohos.agp.window.service.DisplayManager;
import ohos.app.Context;
import java.util.Optional;

public class Utils {

  private Utils() { }

    public static int getScreenWidth(Context context) {
        DisplayManager displayManager = DisplayManager.getInstance();
        Optional<Display> optDisplay = displayManager.getDefaultDisplay(context);
        Point point = new Point(0, 0);
        if (optDisplay.isPresent()) {
            Display display = optDisplay.get();
            display.getSize(point);
        }
        return (int) point.position[0];
    }

    public static int getScreenHeight(Context context) {
        DisplayManager displayManager = DisplayManager.getInstance();
        Optional<Display> optDisplay = displayManager.getDefaultDisplay(context);
        Point point = new Point(0, 0);
        if (optDisplay.isPresent()) {
            Display display = optDisplay.get();
            display.getSize(point);
        }
        return (int) point.position[1];
    } 
}
于 2021-07-27T11:29:54.780 に答える