Şimdi Ara

Android: Aktiveteler Arası ImageVıew Aktarımı YARDIM

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
3 Misafir - 3 Masaüstü
5 sn
3
Cevap
0
Favori
323
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
Öne Çıkar
0 oy
Sayfa: 1
Giriş
Mesaj
  • Merhaba arkadaşlar,
    Projem içinde fotoğraf çekiyorum. bitmap ile çektiğim fotoğrafı imageview ile ekranda gösteriyorum. Eğer fotoğraf çekilme butonuna basılırsa if bloğu içinde bitmap ile resmi alıyorum. imageview ile ekranda gösteriyorum. Bu fotoğrafı 2. aktiviteye nasıl aktarabilirim ?

    Aslında bitmap'i byte dizisine çevirip putextra ile aktarabiliyorum. Ama bunu if bloğu içinde yapınca programım hata veriyor.

    çektiğim fotoğrafı if bloğu dışında nasıl kullanabilirim ? if bloğuna dışarıdan erişim yapamıyorum.
    veya imageview'da gözüken fotoğrafı nasıl bir değişkene alabilirim ?

    biraz karışık oldu derdimi anlatmak kusura bakmayın. yardımlarınızı bekliyorum.



    _____________________________
  • Eğer Aktivite geçişleriyle uğraşmam, çok da yer kaplamıyor zaten fotoğraf dersen Singleton paternini veya Application extend metodlarından birini kullanabilirsin.

    Singleton paterni = Bir class dosyası oluşturursun, bu class dosyası kendine static değişken tutar, ve Constructor'ını private yapıp elle yaratırsın, yaratırken de kontrollü bir şekilde yaparsan sadece 1 tane instance'ı olabilir. Böylelikle dosya atar gibi bu class objesini tüm data işlerin için kullanabilirsin app boyunca.

    Application extend = Application class'ını extend edip o class'ı kullanırsın programın boyunca, Application class'ı app açıkken sürekli kullanıldığı ve erişilebildiği için, Context olarak alıp içinde istediğini veriyi tutup geri alabilirsin.

    Aktivite geçişlerinde ise Serializable veya Parcelable kullanabilirsin.


    Geriye de başka pek bir seçenek kalmıyor galiba bunlar dışında. İlk 2 verdiğim yöntemin hangisi iyi olduğu tartışılıyor internette, çok kesin bir kanı yok anladığım kadarıyla, ben sevdiğim için Singleton kullanıyorum kendi yazıyor olduğum app için.
    _____________________________
    NoN-gta3-2002-success-2005-p***-2016****




  • Yorumunuz için çok teşekkürler. Android programlamada yeniyim. Epey kurcaladıktan sonra bende şu şekilde çözüme ulaştım.

    if bloğu içinde imageview'da fotoğrafı gösterebiliyordum fakat bu değişkene doğal olarak dışardan erişemiyordum.
    Bunun için kullanmak istediğim butonun altında;
    ImageView resim = (ImageView)findViewById(R.id.imageView);
    resim.buildDrawingCache(); //imageview'daki fotoğrafı bitmap değişkenine atama.
    Bitmap ekranFoto = resim.getDrawingCache();
    şu kodlarla bitmap'a fotoğrafımı alabildim.
    Faydalanabilecek olan arkadaşlar için yazıyorum. Bitmap'i diğer aktiviteye göndermek için ise;
    bitmap'i byte dizisine dönüştürüyoruz.
    daha sonra intent ile diğer aktivitemize gönderiyoruz. diğer aktivitede byte dizisini tekrar bitmap'e çevirip kullanıyoruz.

    ByteArrayOutputStream bs = new ByteArrayOutputStream();
    ekranFoto.compress(Bitmap.CompressFormat.PNG, 50, bs); //ekranfoto bitmap değişkenimiz.

    Intent ileri = new Intent(this, digeraktivite.class);
    ileri.putExtra("byteArray", bs.toByteArray());

    startActivity(ileri);


    2. Aktivitenin kodları ise;

    if(getIntent().hasExtra("byteArray")) {
    ImageView goster = (ImageView)findViewById(R.id.imageView2);
    Bitmap b = BitmapFactory.decodeByteArray(
    getIntent().getByteArrayExtra("byteArray"),0,getIntent().getByteArrayExtra("byteArray").length);
    goster.setImageBitmap(b);
    }

    Bu şekildedir.
    _____________________________




  • Yapay Zeka’dan İlgili Konular
    Daha Fazla Göster
    
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.