Sobes.tech
Junior

Kas saab pildi saata läbi Intent?

sobes.tech AI

Vastus AI-lt

Jah, see on võimalik.

  1. URI edastamine: Kõige tavalisem ja tõhusam viis on edastada pildifaili URI.

    val imageUri = Uri.fromFile(File(imagePath)) // imagePath - faili tee
    val shareIntent = Intent(Intent.ACTION_SEND).apply {
        type = "image/*" // MIME tüüp pildile
        putExtra(Intent.EXTRA_STREAM, imageUri) // URI edastamine
        addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION) // õiguste andmine URI lugemiseks
    }
    startActivity(Intent.createChooser(shareIntent, "Jaga pilti"))
    
  2. Bitmapi edastamine (mitte soovitatav suurte piltide puhul): Võite serialiseerida Bitmapi ja panna selle Extra-sse. Kuid see ei ole soovitatav suurte piltide jaoks, kuna Intent extras suuruse piirangud (tavaliselt kuni 1 MB) ja potentsiaalne OutOfMemoryError.

    val bitmap: Bitmap = ... // Sinu Bitmap
    val bitmapIntent = Intent(...).apply {
        putExtra("image_bitmap", bitmap) // Bitmap peab olema Parcelable
    }
    startActivity(bitmapIntent)
    

Vastuvõtmisel:

val receivedBitmap: Bitmap? = intent.getParcelableExtra("image_bitmap")

Parim lähenemine fotode vahetamiseks rakenduste vahel on URI kasutamine ja lugemisõiguste andmine (FLAG_GRANT_READ_URI_PERMISSION), eriti kui meediafailid on salvestatud salvestusruumi. Otse Bitmapi edastamine Extra kaudu sobib ainult väga väikeste piltide või miniatüüride jaoks.