Junior
Intent orqali rasm yuborish mumkinmi?
sobes.tech AI
AIdan javob
Ha, mumkin.
-
URI ni tashish qilish: Eng keng tarqalgan va samarali usul - rasm fayli URI sini yuborish.
val imageUri = Uri.fromFile(File(imagePath)) // imagePath - faylning yo'li val shareIntent = Intent(Intent.ACTION_SEND).apply { type = "image/*" // Rasmning MIME turi putExtra(Intent.EXTRA_STREAM, imageUri) // URI ni yuborish addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION) // URI uchun o'qish huquqini berish } startActivity(Intent.createChooser(shareIntent, "Rasmni ulash")) -
Bitmap ni yuborish (katta rasmlar uchun tavsiya etilmaydi): Bitmap ni serializatsiya qilish va Extra ga joylashtirish mumkin. Ammo, bu katta rasmlar uchun tavsiya etilmaydi, chunki Intent extras ning hajmi cheklovlari (odatda 1 MB gacha) va OutOfMemoryError ehtimoli bor.
val bitmap: Bitmap = ... // Sizning Bitmap val bitmapIntent = Intent(...).apply { putExtra("image_bitmap", bitmap) // Bitmap Parcelable bo'lishi kerak } startActivity(bitmapIntent)
Qabul qilishda:
val receivedBitmap: Bitmap? = intent.getParcelableExtra("image_bitmap")
Ilovalar o'rtasida fotosuratlar bilan almashishning eng yaxshi usuli URI dan foydalanish va o'qish huquqlarini berish (FLAG_GRANT_READ_URI_PERMISSION), ayniqsa media fayllar saqlangan bo'lsa. Bitmap ni to'g'ridan-to'g'ri Extra orqali uzatish faqat juda kichik rasmlar yoki miniatyuralar uchun mos keladi.