Androide.Obtener el tamaño de la imagen a partir de su identificación de recurso
-
11-12-2019 - |
Pregunta
Esto es 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 ImageView usando una matriz como tipo de escala (quiero agregar multitáctil más adelante).Pero antes de que el usuario comience a interactuar, quiero que la imagen esté centrada y quepa dentro de ImageView.Ya encontré respuestas sobre cómo solucionarlo pero hay un problema para mí:Para centrar la imagen usando una matriz, necesito saber su ancho y alto.¿Hay alguna forma de obtener el tamaño de la imagen cuando todo lo que tienes es recurso int ?
Solución
Usar BitmapFactory.decodeRecurso 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 obtener altura y obtener ancho
Además no olvides reciclar tu mapa de bits
EDITAR:
De esta manera obtendrás un null
mapa de bits como salida, pero BitmapFactory.Options se configurará con y la altura del 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;
Otros consejos
Para cualquier persona que no leí 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