Junior
Intent аркылуу сүрөттү өткөрүү мүмкүнбү?
sobes.tech AI
AIден жооп
Һә, бол мүмкiн.
-
URI-ны өткөрүп берүү: Ең кеңири тараган жана эффективдүү жол — сүрөт файлынын URI-син өткөрүп берүү.
val imageUri = Uri.fromFile(File(imagePath)) // imagePath — файлдын жолу val shareIntent = Intent(Intent.ACTION_SEND).apply { type = "image/*" // сүрөттүн MIME түрү putExtra(Intent.EXTRA_STREAM, imageUri) // URI-ны өткөрүп берүү addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION) // URI үчүн окуу укуктарын берүү } startActivity(Intent.createChooser(shareIntent, "Сүрөттү бөлүшүү")) -
Bitmap өткөрүп берүү ( чоң сүрөттөр үчүн сунушталбайт): Bitmap-ты сериалдаштырып, Extra-га коюуга болот. Бирок, бул чоң сүрөттөр үчүн сунушталбайт, себеби Intent extras өлчөмүнүн чектөөлөрү (жалпысынан 1 МБ чейин) жана OutOfMemoryError коркунучу бар.
val bitmap: Bitmap = ... // Сиздин Bitmap val bitmapIntent = Intent(...).apply { putExtra("image_bitmap", bitmap) // Bitmap Parcelable болушу керек } startActivity(bitmapIntent)
Кабыл алганда:
val receivedBitmap: Bitmap? = intent.getParcelableExtra("image_bitmap")
Эң жакшы ыкма — колдонмолор ортосунда сүрөттөрдү алмашуу үчүн URI колдонуу жана укуктарды берүү (FLAG_GRANT_READ_URI_PERMISSION), эгерде медиа-файлдар сакталган болсо. Bitmap-ты түздөн-түз Extra аркылуу өткөрүү — өтө кичинекей сүрөттөр же миниатюралар үчүн гана ылайыктуу.