Junior
Át lehet adni egy fényképet Intenttel?
sobes.tech MI
Válasz az MI-től
Igen, lehetséges.
-
URI átadás: A leggyakoribb és leghatékonyabb módszer az, ha az fénykép fájl URI-ját adjuk át.
val imageUri = Uri.fromFile(File(imagePath)) // imagePath - fájl elérési útja val shareIntent = Intent(Intent.ACTION_SEND).apply { type = "image/*" // Kép MIME típusa putExtra(Intent.EXTRA_STREAM, imageUri) // URI átadása addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION) // Olvasási jogok biztosítása az URI-hoz } startActivity(Intent.createChooser(shareIntent, "Kép megosztása")) -
Bitmap átadása (nem ajánlott nagy képeknél): A Bitmap-et serializálhatjuk és Extra-ba helyezhetjük. Ez azonban nem ajánlott nagy képeknél, mivel az Intent extras méretkorlátai (általában 1 MB-ig) és az OutOfMemoryError kockázata miatt.
val bitmap: Bitmap = ... // A saját Bitmap val bitmapIntent = Intent(...).apply { putExtra("image_bitmap", bitmap) // A Bitmap Parcelable kell legyen } startActivity(bitmapIntent)
A fogadásnál:
val receivedBitmap: Bitmap? = intent.getParcelableExtra("image_bitmap")
A legjobb módszer a fényképek közötti cserehez az URI használata, olvasási jogok biztosításával (FLAG_GRANT_READ_URI_PERMISSION), különösen, ha a médiafájlok a tárolóban vannak. A Bitmap közvetlen átadása Extra-val csak nagyon kicsi képek vagy miniatűrök esetén megfelelő.