Soru & Cevap

Orientation değişikliğindeki kayıp nasıl giderilir?

15.01.2014 - 05:03

Merhabalar...

Ben bir proje üzerinde çalışıyorum ve bu projede kulanıcı bir butono tıkladığında resim seçtirip onu imageview e aktardığım bir bölüm oluyor. Resmi başarılı bir şekilde aktarıyorum ama kullanıcı cihazın yönünü değiştirdiğinde imageview eski haline dönüyor... Acaba çözümünü benimle palaşırmısınız?

0 Görüntülenme

4 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

Profile picture for user resulgenc1
resulgenc1
05.02.2014 - 11:20

manifest dosyası içerisine, android:configChanges="orientation|screenSize|keyboardHidden"

özelliğini eklediğinizde, ekranı çevirdiğinizde activity yeniden yüklenmiyor.

örnek

<activity
            android:name=".CalistiginizActivity"
            android:configChanges="orientation|screenSize|keyboardHidden" >

</activity>

Numan
10.02.2014 - 05:17
oldu artık sıkıntı yok. yardım için teşekkürler
Profile picture for user yasinyildirim
yasinyildirim
19.01.2014 - 04:31

Android'de orientation degistigi zaman isletim sisteminin default davranisi ekranda olan activity'yi sonlandirip orientation degisikligi tamamlandiginda tekrar acmak seklindedir. Bu durumda onCreate metodu tekrar cagirilacagi icin ImageView'a koymus oldugunuz resim verisini kaybedersiniz. Bu durumu handle etmek icin onSaveInstance metodunu override etmeniz gerekir. onSaveInstance(Bundle outstate) metodu bir sistem metodudur ve bir activity sonlandirilmadan hemen once cagirilir. Bu metodun icerisinde outState isimli bundle'a resim verisini extra olarak eklemeniz gerekir. Bu sayede orientation degisip activity'nin onCreate metodu tekrar cagirildiginda kaydettiginiz veri onCreate(Bundle savedInstanceState) metoduna gelen bundle'in icinde olacaktir.

 

onSaveInstance state metodunu override edip istediginiz verileri ekledikten sonra, onCreate metodunda soyle bir kontrol ile sorununuz cozulecektir:

 

if (savedInstanceState != null && savedInstanceState.hasExtra("IMAGE_DATA")) {

    // Restore edilen resim verisini ImageView'a tekrar koy.

}

// Normal onCreate akisini devam ettir

ce.alican
20.01.2014 - 01:56
Cevap vermek istemiştim ama Yasin çok güzel açıklamışsın ekleyecek birşey bulamadım.
Profile picture for user kcdroid
kcdroid
16.01.2014 - 01:10

Cihaz çevrildiginde orientation değişimini kapatsanız , yani auto-rotate'i disable yapsanız?