Adaptação de tela de adaptação de tela de celular com botões virtuais

Recentemente, encontrei um problema de adaptação de tela com botões virtuais durante o desenvolvimento do projeto. Por exemplo, Huawei P9, Xiaomi MAX e outros modelos, o layout de toda a tela está acima, acho que deve ser um problema de botão virtual. Então, após algumas jogadas, encontrei a seguinte solução:

  • Obtenha o tamanho real de exibição e a altura da tela
//获取屏幕尺寸,不包括虚拟功能高度
getWindowManager().getDefaultDisplay().getHeight();


  •  Obtenha a altura original da tela
 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;
    }

Após duas comparações de altura, a altura da chave virtual pode ser obtida. A resolução da tela com teclado virtual é 1920 * 1080, mas na verdade reconhece a altura real ((altura do teclado virtual 1920) * 1080).
resolver:
Você pode escrever um conjunto de arquivos dimens de um tamanho específico. Por exemplo, a altura do botão virtual no Huawei p9 é 120px. Em seguida, você pode adicionar um conjunto de valores -1800X1080 e copiar 1920X1080 para os  valores -1800X1080. Solução perfeita!

Acho que você gosta

Origin blog.csdn.net/xufei5789651/article/details/72722837
Recomendado
Clasificación