tamaño studio para pantalla imagenes imagen formato fondo comprimir celular ajustar android image resources image-size

android - studio - tamaño de imagen para fondo de pantalla para celular



Androide. Obtención del tamaño de la imagen a partir de su ID de recurso (2)

Esta es una parte de mi actividad:

private ImageView mImageView; private int resource; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); resource = getIntent().getIntExtra("res", -1); Matrix initMatrix = new Matrix(); mImageView = new ImageView(getApplicationContext()); mImageView.setScaleType( ImageView.ScaleType.MATRIX ); mImageView.setImageMatrix( initMatrix ); mImageView.setBackgroundColor(0); mImageView.setImageResource(resource); }

Intento mostrar una imagen dentro de un ImageView usando una matriz como tipo de escala (quiero agregar multitouch más adelante). Pero antes de que el usuario inicie la interacción, quiero que la imagen esté centrada y que se ajuste dentro de ImageView. Ya encontré respuestas sobre cómo resolverlo, pero hay un problema para mí: para hacer que la imagen se centre utilizando la matriz, necesito saber su ancho y alto. ¿Hay alguna forma de obtener el tamaño de la imagen cuando todo lo que tiene es un recurso int ?


Para cualquiera que no haya leído el comentario de dmon. El código para hacer esto se ve así:

final Options opt = new BitmapFactory.Options(); opt.inJustDecodeBounds = true; BitmapFactory.decodeResource(getResources(), R.drawable.your_photo, opt); opt.outHeight; // height of resource opt.outWidth; // width of resource


Utilice BitmapFactory.decodeResource para obtener un objeto de mapa de bits del recurso, y luego desde el mapa de bits puede recuperar fácilmente el ancho / alto de la imagen con getHeight y getWidth

Además, no olvides recycle tu bitmap.

EDITAR:

De esta manera obtendrá un mapa de bits null como salida, pero las Opciones de BitmapFactory se establecerán con la altura y para el mapa de bits. Entonces, en este caso, no es necesario reciclar el mapa de bits

BitmapFactory.Options dimensions = new BitmapFactory.Options(); dimensions.inJustDecodeBounds = true; Bitmap mBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.bitmap, dimensions); int height = dimensions.outHeight; int width = dimensions.outWidth;