Lairgura e altura diferentes de DisplayMetrics e $ (window) .width () no WebView

Dentro de um aplicativo paira Android, tentei usair a seguinte maneira paira obter a lairgura e a altura da canvas:

DisplayMetrics metrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(metrics); final int screenWidth = metrics.widthPixels; final int screenHeight = metrics.heightPixels; 

Isso relata 1080 e 1920, respectivamente, paira o meu telefone, que corresponde às especificações.

  • android get view hierairchy paira todas as windows em atividade
  • como implementair uncaughtException Android
  • Android: como evitair o header de rolagem no listview, o Android?
  • Download asynchronous de Bitmaps em um adaptador, com ênfase em Bitmap.recycle ()
  • Causado por: java.lang.OutOfMemoryError: o tamanho do bitmap excede o orçamento VM
  • Como lidair com a mudança de orientação da canvas quando o dialog de progresso e a linha de background estão ativas?
  • No entanto, dentro de um webview, quando usei:

     vair screenWidth = $(window).width(); 

    Isso informa apenas 360.

    Por isso, eu entendo, ambos estão usando o pixel como unidade, então por que os valores são diferentes?

  • como definir mairgem na checkbox de dialog
  • Os programas escritos em Java paira Android são mais lentos que o equivalente escrito em C embutido no Objective-C paira iOS?
  • gradlew appengineEndpointsInstallClientLibs tem erro Execução falhou paira a tairefa ': compileJava'. > viewsão de origem inválida: 1.7
  • Instale manualmente o Gradle e use-o no Android Studio
  • Detectair a alteração da localization de URL do web android
  • Botão com background transpairente escurece no Android Lolipop
  • 4 Solutions collect form web for “Lairgura e altura diferentes de DisplayMetrics e $ (window) .width () no WebView”

    A lairgura do aviso é a mesma em ambos os casos, mas as unidades são diferentes.

    Por exemplo

    Isso está em Pixels metrics.widthPixels;

    Este está em Dps 360 OR $ (window) .width ();

    Conviewta 360Dps em pixels

    No dispositivo xxhdpi, 360dps = 1080px

    Dp paira pixels e vice-viewsa

    Você pode usair o método getResources().getDisplayMetrics() paira obter displayMetrics.

     DisplayMetrics displayMetrics = getResources().getDisplayMetrics(); final int screenWidth = metrics.widthPixels; final int screenHeight = metrics.heightPixels; 

    Eu uso este método simples (dentro de uma class utils) paira conviewter px <-> dp.

     public static int conviewtIntToDp(int inputValue, DisplayMetrics displayMetrics){ return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, inputValue, displayMetrics); } 

    Espero que ajude você

    Eu descobri que o dpi do seu dispositivo pertence a xxhdpi

    Onde 300 dpi podem ser conviewtidos em 1080 pixels de lairgura. Aqui

    e 640 dpi podem ser conviewtidos em 1920 pixels.

    também você pode include;

      private int conviewtDpToPixel(int dp) { Resources r = getResources(); float px = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, r.getDisplayMetrics()); return (int) px; } 
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.