Junior
Կարող է արդյոք լուսանկարը փոխանցել Intent-ով?
sobes.tech AI
Պատասխան AI-ից
Այո, դա հնարավոր է:
-
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-ի միջոցով՝ միայն շատ փոքր պատկերների կամ նախադիտումների համար է։