Какие знаешь способы определения размера изображения в Android

«Какие знаешь способы определения размера изображения в Android» — вопрос из категории UI и Views, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В Android можно определить размер изображения несколькими способами:

  1. BitmapFactory.Options (без загрузки в память):
val options = BitmapFactory.Options().apply {
    inJustDecodeBounds = true
}
BitmapFactory.decodeResource(resources, R.drawable.image, options)
val width = options.outWidth
val height = options.outHeight
  1. Через Bitmap (если изображение уже загружено):
val bitmap = BitmapFactory.decodeResource(resources, R.drawable.image)
val width = bitmap.width
val height = bitmap.height
  1. Для ImageView:
imageView.post {
    val width = imageView.width
    val height = imageView.height
}
  1. Через ресурсы (для drawable):
val drawable = ContextCompat.getDrawable(context, R.drawable.image)
val width = drawable?.intrinsicWidth
val height = drawable?.intrinsicHeight

Первый способ наиболее эффективен, так как не загружает изображение в память.