Middle
Kā jūs pārsūtītu fotoattēlu uz redaktoru?
sobes.tech AI
Atbilde no AI
Ir vairākas veidi:
-
Izmantot URI failam: Tas ir visbiežāk un efektīvākais veids lieliem failiem, piemēram, fotogrāfijām.
- Izveidojam URI attēla failam.
- Nosūtām šo URI mērķa Activity ar Intent.
// Izveidojam URI no Faila val imageFile = File(filesDir, "my_photo.jpg") val imageUri = FileProvider.getUriForFile(this, "${packageName}.provider", imageFile) // Izveidojam Intent un pievienojam URI val editIntent = Intent(Intent.ACTION_EDIT) editIntent.setDataAndType(imageUri, "image/*") editIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION) // Svarīgi piekļuvei URI // Sākam Activity startActivity(editIntent) -
Pārsūtīt Bitmap ar Intent: Der mazām attēliem vai priekšskatījumiem. Bitmap tiek serializēts, kas var izraisīt
TransactionTooLargeExceptionkļūdas lielā izmērā.// Saņemam Bitmap val bitmap: Bitmap = ... // Jūsu Bitmap // Izveidojam Intent un pievienojam Bitmap val editIntent = Intent(this, EditorActivity::class.java) editIntent.putExtra("image_bitmap", bitmap) // Bitmap serializējas // Sākam Activity startActivity(editIntent)Mērķa Activity:
val bitmap = intent.getParcelableExtra<Bitmap>("image_bitmap") // Izmantojam bitmap -
Saglabāt kopējā kešā un nodot faila nosaukumu: Pagaidu piekļuve failam citām lietojumprogrammām.
- Saglabājam failu pagaidu mapē, kas ir pieejama citām lietojumprogrammām (piemēram, lietojumprogrammas specifiskā kešatmiņas direktorijā).
- Nododam ceļu uz failu ar Intent.
- Mērķa lietojumprogramma ir jābūt tiesībām lasīt no šīs mapes.
// Saglabājam failu pagaidu direktorijā val tempFile = File(cacheDir, "temp_photo.jpg") // Rakstām attēla datus tempFile // Izveidojam Intent un nododam ceļu uz failu val editIntent = Intent(this, EditorActivity::class.java) editIntent.putExtra("image_path", tempFile.absolutePath) // Sākam Activity startActivity(editIntent)Mērķa Activity:
val imagePath = intent.getStringExtra("image_path") val imageFile = File(imagePath) // Lasām datus no imageFile
Izvēle ir atkarīga no attēla lieluma un datu apmaiņas starp Activity prasībām. Lieliem attēliem URI caur FileProvider ir ieteicams variants.