Middle
Kuidas te edastaksite foto redaktorile?
sobes.tech AI
Vastus AI-lt
On mitu viisi:
-
Kasutades faili URI: See on kõige levinum ja tõhusam viis suurte failide, näiteks fotode jaoks.
- Loome URI pildi failile.
- Saadame selle URI siht-Activityle Intenti kaudu.
// Loome URI failist val imageFile = File(filesDir, "my_photo.jpg") val imageUri = FileProvider.getUriForFile(this, "${packageName}.provider", imageFile) // Loome Intent ja lisame URI val editIntent = Intent(Intent.ACTION_EDIT) editIntent.setDataAndType(imageUri, "image/*") editIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION) // Oluline URI-le juurdepääsuks // Käivitame Activity startActivity(editIntent) -
Bitmapi edastamine Intenti kaudu: Sobib väikeste piltide või eelvaadete jaoks. Bitmap serialiseerub, mis võib põhjustada vigu
TransactionTooLargeExceptionsuure suuruse korral.// Saame Bitmapi val bitmap: Bitmap = ... // Teie Bitmap // Loome Intent ja lisame Bitmapi val editIntent = Intent(this, EditorActivity::class.java) editIntent.putExtra("image_bitmap", bitmap) // Bitmap serialiseerub // Käivitame Activity startActivity(editIntent)Siht-Activitys:
val bitmap = intent.getParcelableExtra<Bitmap>("image_bitmap") // Kasutame bitmapi -
Faili nime edastamine ühises vahemälus ja selle kasutamine: Kasutatakse ajutiseks failile juurdepääsuks teistele rakendustele.
- Salvestame faili ajutisse kausta, mis on teistele rakendustele kättesaadav (näiteks rakenduse spetsiifiline vahemälu kataloog).
- Edastame tee faili Intenti kaudu.
- Sihtrakendus peab omama õigusi selle kausta lugemiseks.
// Faili salvestamine ajutisse kataloogi val tempFile = File(cacheDir, "temp_photo.jpg") // Kirjutame pildi andmed tempFile'i // Loome Intent ja edastame faili tee val editIntent = Intent(this, EditorActivity::class.java) editIntent.putExtra("image_path", tempFile.absolutePath) // Käivitame Activity startActivity(editIntent)Siht-Activitys:
val imagePath = intent.getStringExtra("image_path") val imageFile = File(imagePath) // Loeme andmed imageFile'ist
Valik sõltub pildi suurusest ja andmevahetusnõuetest Activityde vahel. Suurte piltide jaoks on URI FileProvideri kaudu eelistatud variant.