Jak uzyskać wysokość i szerokość obrazu używanego w Androidzie

Chcę uzyskać wysokość i szerokość obrazu, który jest albo w ImageView lub obraz tła w emulatorze android.proszę mi pomóc, każda pomoc będzie appriciated.

Author: abhishek ameta, 2012-01-16

2 answers

Możesz uzyskać wysokość i szerokość ImageView za pomocą getWidth() i getHeight (), podczas gdy to nie da ci dokładnej szerokości i wysokości obrazu, aby uzyskać szerokość i wysokość obrazu, najpierw musisz uzyskać rysowalne jako tło, a następnie przekonwertować rysowalne na BitmapDrawable, aby uzyskać obraz jako bitmapę, z której możesz uzyskać szerokość i wysokość jak tutaj

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

Lub jak tu

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

Powyższy kod da Ci aktualną bitmapę o rozmiarze imageview, taką jak zrzut ekranu urządzenie

Tylko dla rozmiaru ImageView

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

Jeśli masz rysowalny obraz i chcesz mieć taki rozmiar, możesz uzyskać w ten sposób

Drawable d = getResources().getDrawable(R.drawable.yourimage);
int h = d.getIntrinsicHeight(); 
int w = d.getIntrinsicWidth();      
 77
Author: Pratik,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-08-21 13:37:00

Z jakiegoś powodu zaakceptowana odpowiedź nie działała dla mnie, zamiast tego osiągnąłem wymiar obrazu zgodnie z docelowym DPI ekranu w ten sposób.

Metoda 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);

Oto oryginalny link

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

Metoda 2

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

Nie pokazuje dokładnej liczby pikseli w zasobie obrazu, ale znaczącą liczbę, być może ktoś może wyjaśnić dalej.

 1
Author: Tough Guy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-05 11:10:11