Android.Получение размера изображения от его идентификатора ресурса
-
11-12-2019 - |
Вопрос
Это часть моей деятельности:
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
.