web-dev-qa-db-fra.com

Comment obtenir la hauteur et la largeur d'une image utilisée dans Android

Je souhaite obtenir la hauteur et la largeur d'une image dans ImageView ou d'une image d'arrière-plan dans Android emulator.S'il vous plaît aidez-moi, toute aide sera appréciée 

23
abhishek ameta

Vous pouvez obtenir la hauteur et la largeur de ImageView en utilisant getWidth () et getHeight () sans que cela ne vous donne la largeur et la hauteur exactes de l'image. Pour obtenir d'abord la largeur de l'image, vous devez d'abord obtenir le dessin comme fond puis la convertir dessinable en BitmapDrawable pour obtenir l'image en tant que bitmap à partir de laquelle vous pouvez obtenir la largeur et la hauteur comme ici

Bitmap b = ((BitmapDrawable)imageView.getBackground()).getBitmap();
int w = b.getWidth();
int h = b.getHeight();

ou faire comme ici

imageView.setDrawingCacheEnabled(true);
Bitmap b = imageView.getDrawingCache();
int w = b.getWidth();
int h = b.getHeight();

le code ci-dessus vous donnera un bitmap de taille imageview actuel comme une capture d'écran d'un appareil

pour seulement la taille ImageView 

imageView.getWidth(); 
imageView.getHeight(); 

Si vous avez une image dessinable et que vous voulez cette taille, vous pouvez obtenir comme ceci

Drawable d = getResources().getDrawable(R.drawable.yourimage);
int h = d.getIntrinsicHeight(); 
int w = d.getIntrinsicWidth();      
79
Pratik

Pour une raison quelconque, la réponse acceptée ne fonctionnait pas pour moi. J'ai plutôt atteint la dimension de l'image conformément au ppp d'écran cible comme celui-ci.

Méthode 1

Context context = this; //If you are using a view, you'd have to use getContext();
Resources resources = this.getResources();
BitmapFactory.Options bounds = new BitmapFactory.Options();
bounds.inJustDecodeBounds = true;
BitmapFactory.decodeResource(resources, R.drawable.cake, bounds); //use your resource file name here.
Log.d("MainActivity", "Image Width: " + bounds.outWidth);

Voici le lien original

http://upshots.org/Android/android-get-dimensions-of-image-resource

Méthode 2

BitmapDrawable b = (BitmapDrawable)this.getResources().getDrawable(R.drawable.cake);
Log.d("MainActivity", "Image Width: " + b.getBitmap().getWidth());

Il ne montre pas le nombre exact de pixels dans la ressource image mais un nombre significatif peut-être que quelqu'un peut expliquer davantage.

1
Tough Guy