Soru & Cevap

ses ekleme, aktivite geçiş, veri yönetimi

07.04.2014 - 08:19

merhabalar ben de program gelistirmede yenilerdenim. 
bir konu hakkında takıldım.
simdi uygulamamızda 2 sayfa(aktıvıte)var. anasayfa da bir listview var yada küçük resimler var(mesela kalem elma vs.) bunlar anasayfada listelenmiş şekilde.
bunlara tıkladığımda mesela kalem resmine tıkladığımda 2. sayfa açılacak ve bu sayfa da kalem resimleri kalemin Türkçe okunuşu olacak. Ama söyle olacak. 2. sayfa sabit standart tasarım olsun(textview ler butonların yeri değişmesin). 1. sayfadan seçilene göre sadece resim ve sesler değişsin. (haber sitelerinin uygulamalarındaki gibi diyebiliriz. farklı haberlere girildiğinde aynı sayfa tasarımı ile karşılaşıyoruz
sorularıma gelince;
bir resime(küçük icon seklinde 16x16 gibi) buton görevi nasıl verebilirim?

uygulamanın kasmaması için resim ve sesleri nasıl muhafaza ederim ve hangısıne tıklarsam onun verisinin gelmesini nasıl sağlarım. burda sqlite devreye giriyor sanırım?

2. sayfada galeri ve bir sesi çalmak için buton olsun diyelim. ben bunlara 1. sayfadan farklı verileri(kalem, silgi, defter) nasıl kodlarım.
şimdiden tesekkurler. 

103 Görüntülenme

1 Cevap

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

Geleceği Yazanlar Kullanıcısı
08.04.2014 - 02:47

Emre çok teşekkürler cevabınız için.

bunları da ekleyebilirim soruma;

kalem silgi örneği gibi mesela 50-60 tane nesne olacak. bu nesnelerin gösteren butonları ve 2. sayfada da bunların ses ve buyuk resimleri olacak. bunların toplamı uygulamanın mb. tını yükseltir. diye endişem var. bir de bunlar sabit olucak. internetten çekmeyeceğim. daha sonra güncellemeyle olabilir.

bir de son kullanıcı uygulamanın mb. tına bakıp da vazgeçebiliyor ya da bir süre sonra yer açmak için siliyor.

uygulamada 3-4 sn.lik 100 tane ses 320x320 vs. boyutunda 250 tane felan resim olsa. nasıl bir boyut çıkar.bunu en ideal nasıl programa monte ederim?

 

şöyle yazmışsınız;Bir resme tıkladığında o resme ait sesin gelmesini, içinde ses ve resim bilgilerini içeren basit bir sınıf tanımlayarak çözebilirsin

benim istediğim kullanıcı resme bassın(imageButton) sonra yeni bir aktivite açılsın. aktıivite de bastığı ile alakalı resimler ve sesi olsun 

BİR TANE ÖRNEK TASARIM EKLEDİM UMARIM ANLATABİLMİŞİMDİR...

/sites/default/files/cevaplar/dosya/2020/file-adsiz_17.png
Emre
08.04.2014 - 03:56
Anladığım kadarıyla uygulamanın boyutunun küçük olmasını istiyorsunuz. Bunun için size tavsiyem uygulamanın içine doğrudan ses ve resimleri eklemek yerine, uygulama yüklendikten sonra bir seferlik bütün dosyaları internetten indirip hafıza kartına atmanız olacaktır. Böylece telefon hafızasını kullanmamış olursunuz. Resim ve sesleri veritabanında ilişkilendirirseniz, resme tıklandığında sese doğrudan erişebilirsiniz.
picture-16908-1396912439.jpg
emre_koc
08.04.2014 - 02:08

Soru : bir resime(küçük icon seklinde 16x16 gibi) buton görevi nasıl verebilirim?

Cevap : Bunu yapabilmen için hazır widgetlar var. ImageView ve ImageButton widgetları işini görecektir. 

ImageView ile tıklama olayını setOnClickListener fonksiyonu sayesinde dinleyebilirsin. Kodu doğrudan yapıştırma null pointer exception hatası alırsın. 

[code]ImageView iv;
        
        iv.setOnClickListener(new OnClickListener() {
            
            @Override
            public void onClick(View v) {
                //Tıklandığında olacak olaylar burada tetiklenir.
            }
        });[/code]

 

Soru : uygulamanın kasmaması için resim ve sesleri nasıl muhafaza ederim ve hangısıne tıklarsam onun verisinin gelmesini nasıl sağlarım. burda sqlite devreye giriyor sanırım?

Cevap :  

  • Resim ve sesler statik mi olacak ? İnternet aracılığı ile bir yerden mi çekeceksin yoksa hep aynı veriler mi olacak ? Eğer İnternetten çekeceksen, her seferinde çekmemek için veritabanı kullanman gerekmektedir. Fakat ses ve resim dosyalarını veritabanında tutmak yerine, bu dosyaları indirdiğin zaman hafıza kartında bir klasör açıp orada tutarsan veritabanını şişirmemiş olursun. Eğer internetten çekmeyeceksen assets klasörüne atıp oradan çekmen yeterli olacaktır. Bu sayede veritabanına gerek kalmaz.

 

  •  Bir resme tıkladığında o resme ait sesin gelmesini, içinde ses ve resim bilgilerini içeren basit bir sınıf tanımlayarak çözebilirsin.​
  • Oluşturacağın sınıfı ImageView ile ilişkilendirmek için ImageView'in setTag fonksiyonunu kullanabilirsin. ImageView oluştururken setTag fonksiyonuna herhangi bir tag eklersin. 
    Ardından eklediğin tag ile ses çaldırırsın. Temsili kodu şöyle 

    [code]ImageView iv = null;
            
            iv.setTag("herhangi bir etiket");
            
            iv.setOnClickListener(new OnClickListener() {
                
                @Override
                public void onClick(View v) {
                    
                String etiket =    (String) v.getTag();
                //buradaki etikete göre ses çaldırırsın.
                }
            });[/code]

    Sorunu anlayabildiğim kadarıyla cevap vermeye çalıştım. Umarım işine yarar :)