Bitmap getWidth restituisce valore errato

Ho un'image jpg nella mia cartella disegnabile applicativa android, la risoluzione è 1000×600. Carico l'image a bitmap come questo

Bitmap bitMap = BitmapFactory.decodeResource(getResources(), R.drawable.image); 

Dopo di ciò, chiamo bitMap .getWidth() che restituisce 1500. Come può essere? E come get la giusta width e l'altezza dell'image?

  • RxJava task di Async in Android
  • Espresso multidex di Android Esegui
  • Inserimento di un file di grandi size in Android
  • Le migliori pratiche per la chiamata finale () su un'attività in android?
  • L'applicazione (connessioni WiFi) non funziona più in Android 6.0 Marshmallow
  • Come analizzare una complessa risposta SOAP in Android
  • L'installazione del software ha riscontrato un prob ... android
  • GLSurfaceView continua a rendere nonostante cambia la modalità di rendering
  • Come hide il layout quando lo schermo rimane intatto dall'utente?
  • Posizionare una bolla di badge sul lato superiore sinistro di un button
  • android edittext onchange listener
  • Come posso creare pagine HTML che regolano automaticamente le proprie immagini a diverse size dello schermo mobile?
  • One Solution collect form web for “Bitmap getWidth restituisce valore errato”

    Questo è probabilmente a causa di densità diverse. La tua risorsa è probabilmente memorizzata in una cartella di media densità, ma il tuo dispositivo è hdpi. La densità media è 160dpi, l'alta densità è 240dpi. Così la tua bitmap è scalata a 1,5x la dimensione originaria. Vedere il documento su più schermate per ulteriori informazioni.

    Se le risorse non sono disponibili nella densità corretta, il sistema caricherà le risorse predefinite e li scala in su o in giù come necessario per abbinare la densità della schermata corrente.

    Se avete inteso che questo sia per l'alta densità, metterlo in drawable-hdpi invece di disegnare o disegnare-mdpi.

    Aggiornare:

    Se si desidera ignorare la densità, inserirlo in una cartella draw-nodpi. Anche dallo stesso doc:

    Il modo più semplice per evitare la pre-scalatura è quello di mettere la risorsa in una directory di risorse con il qualificatore di configuration di nodpi. Per esempio:

     res/drawable-nodpi/icon.png 

    Quando il sistema utilizza il bitmap icon.png da questa cartella, non lo scala in base alla densità del dispositivo corrente.

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.