Turkcell | Geleceği Yazanlar

Soru & Cevap

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

15.01.2014 - 17: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?

3014 Görüntülenme

4 Cevap

Resul GENC
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>

Sitede yorum yapabilmek için giriş yapın ya da üye olun.

Numan
10.02.2014 - 17:17
oldu artık sıkıntı yok. yardım için teşekkürler
Hilal Ateşalp
19.01.2014 - 20:27

Kullanıdığınız sayfada oluşan Layout un içine  <ScrollView> kullanın.

Sitede yorum yapabilmek için giriş yapın ya da üye olun.

Yasin Yildirim
19.01.2014 - 16: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

Sitede yorum yapabilmek için giriş yapın ya da üye olun.

Ali CAN
20.01.2014 - 13:56
Cevap vermek istemiştim ama Yasin çok güzel açıklamışsın ekleyecek birşey bulamadım.
Oğuz
16.01.2014 - 01:10

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

Sitede yorum yapabilmek için giriş yapın ya da üye olun.

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