Android.Получение размера изображения от его идентификатора ресурса

StackOverflow https://stackoverflow.com//questions/9655534

Вопрос

Это часть моей деятельности:

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);
}
.

Я стараюсь отображать изображение в ImageView, используя матрицу как тип масштаба (я хочу добавить MultiTouch позже).Но перед тем, как пользователь начнет взаимодействие, я хочу, чтобы изображение было центрировано и помещено внутри ImageView. Я уже нашел ответы относительно того, как это решить, но есть одна проблема для меня: Чтобы сделать изображение, сосредоточенное с помощью матрицы, мне нужно знать его ширину и высоту.Есть ли способ получить размер изображения, когда все, что у вас есть, является Int Resource ?

Это было полезно?

Решение

Используйте BitmapFactory.DeCoderesource Для получения растрового объекта ресурса, а затем от растрового изображения вы можете легко получить ширину / высоту изображения с getheight и GetWidth

Также не забудьте рециркуляции Ваше растровое изображение

Редактировать:

Таким образом, вы получите растровое изображение null в качестве вывода, но растровые продукты. Совершенны будут установлены с помощью и высотой для растрового изображения.Итак, в этом случае вам не нужно перерабатывать растровое изображение

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;
.

Другие советы

Для всех, кто не прочитал комментарий Дно.Код для этого выглядит так:

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
.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top