Middle
Şəkli redaktora necə köçürərdiniz?
sobes.tech Süni İntellekt
AI-dan cavab
Bir neçə üsul mövcuddur:
-
Fayl URI-dən istifadə: Bu, böyük fayllar, məsələn, şəkillər üçün ən yaygın və effektiv üsuldur.
- Şəkil faylı üçün URI yaradın.
- Bu URI-ni məqsədli Activity-ə Intent vasitəsilə göndərin.
// Fayldən URI yaradın val imageFile = File(filesDir, "my_photo.jpg") val imageUri = FileProvider.getUriForFile(this, "${packageName}.provider", imageFile) // Intent yaradın və URI əlavə edin val editIntent = Intent(Intent.ACTION_EDIT) editIntent.setDataAndType(imageUri, "image/*") editIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION) // URI-yə giriş üçün vacib // Activity-i işə salın startActivity(editIntent) -
Bitmap-i Intent vasitəsilə ötürün: Kiçik şəkillər və ya önizləmələr üçün uyğundur. Bitmap serializə olunur, bu da böyük ölçülü şəkillərdə
TransactionTooLargeExceptionxətalarına səbəb ola bilər.// Bitmap-i əldə edin val bitmap: Bitmap = ... // Sizin Bitmap // Intent yaradın və Bitmap-i əlavə edin val editIntent = Intent(this, EditorActivity::class.java) editIntent.putExtra("image_bitmap", bitmap) // Bitmap serializə olunur // Activity-i işə salın startActivity(editIntent)Hədəf Activity-də:
val bitmap = intent.getParcelableExtra<Bitmap>("image_bitmap") // Bitmap-dən istifadə edin -
Ümumi cache-də saxlayın və fayl adını ötürün: Bu, digər tətbiqlər üçün müvəqqəti fayl erişimi üçün istifadə olunur.
- Faylı müvəqqəti qovluqda saxlayın, bu digər tətbiqlər üçün əlçatan olsun (məsələn, tətbiqə xas cache qovluğu).
- Faylın yolunu Intent vasitəsilə ötürün.
- Hədəf tətbiq bu qovluqda oxuma hüququna malik olmalıdır.
// Faylı müvəqqəti qovluqda saxlayın val tempFile = File(cacheDir, "temp_photo.jpg") // Fotoqraf məlumatlarını tempFile-ə yazın // Intent yaradın və fayl yolunu ötürün val editIntent = Intent(this, EditorActivity::class.java) editIntent.putExtra("image_path", tempFile.absolutePath) // Activity-i işə salın startActivity(editIntent)Hədəf Activity-də:
val imagePath = intent.getStringExtra("image_path") val imageFile = File(imagePath) // imageFile-dan məlumatları oxuyun
Yöntem seçimi, şəkilin ölçüsünə və Activity-lər arasında məlumat mübadiləsi tələblərinə bağlıdır. Böyük şəkillər üçün URI və FileProvider üstünlük təşkil edir.