Bitmap getWidth devuelve un valor incorrecto

Tengo una imagen jpg en mi carpeta dibujable de la aplicación de Android cuya resolución es 1000×600. Cargué esa imagen en un bitmap como este

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

Después de esto, llamo a bitMap .getWidth() que devuelve 1500. ¿Cómo puede ser? ¿Y cómo obtener el ancho y la altura correctos de la imagen?

Esto es probablemente debido a las diferentes densidades. Su recurso probablemente esté almacenado en una carpeta de densidad media, pero su dispositivo es hdpi. La densidad media es de 160 ppp, la alta densidad es de 240 ppp. Por lo tanto, su bitmap se escala a 1.5 veces el tamaño original. Consulte el documento en varias pantallas para obtener más información.

Si los recursos no están disponibles en la densidad correcta, el sistema carga los recursos predeterminados y los escala hacia arriba o hacia abajo según sea necesario para que coincida con la densidad de la pantalla actual.

Si pretendía que fuera de alta densidad, colóquelo en hdpi dibujable en lugar de dibujable o dibujable mdpi.

Actualizar:

Si desea que ignore la densidad, colóquela en una carpeta drawable-nodpi. También del mismo documento:

La forma más fácil de evitar el escalado previo es colocar el recurso en un directorio de recursos con el calificador de configuración nodpi. Por ejemplo:

 res/drawable-nodpi/icon.png 

Cuando el sistema utiliza el bitmap icon.png de esta carpeta, no lo escala en función de la densidad del dispositivo actual.