Adaptation d'écran de l'adaptation d'écran de téléphone mobile avec des boutons virtuels

Récemment, j'ai rencontré un problème d'adaptation d'écran avec des boutons virtuels lors du développement du projet. Par exemple, Huawei P9, Xiaomi MAX et autres modèles, la disposition de l'écran entier est en place, je pense que cela devrait être un problème de bouton virtuel. Donc, après quelques lancers, j'ai trouvé la solution suivante:

  • Obtenez la taille et la hauteur réelles de l'écran
//获取屏幕尺寸,不包括虚拟功能高度
getWindowManager().getDefaultDisplay().getHeight();


  •  Obtenez la hauteur d'origine de l'écran
 private int getHeight() {
        int dpi = 0;
        Display display = getWindowManager().getDefaultDisplay();
        DisplayMetrics dm = new DisplayMetrics();
        Class c;
        try {
            c = Class.forName("android.view.Display");
            @SuppressWarnings("unchecked")
            Method method = c.getMethod("getRealMetrics", DisplayMetrics.class);
            method.invoke(display, dm);
            dpi = dm.heightPixels;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return dpi;
    }

Après deux comparaisons de hauteur, la hauteur de la clé virtuelle peut être obtenue. La résolution de l'écran avec clavier virtuel est de 1920 * 1080, mais il reconnaît en fait la hauteur réelle ((1920-hauteur du clavier virtuel) * 1080).
résoudre:
Vous pouvez écrire un ensemble de fichiers dimens d'une taille spécifique. Par exemple, la hauteur du bouton virtuel sur Huawei p9 est de 120 px. Ensuite, vous pouvez ajouter un ensemble de valeurs-1800X1080 et copier 1920X1080 en  valeurs-1800X1080. Solution parfaite!

Je suppose que tu aimes

Origine blog.csdn.net/xufei5789651/article/details/72722837
conseillé
Classement