2010-06-26 19 views
6

Mümkün olduğunca açık olmaya çalışacağım. BenGaleri ve tam ekran ImageView, bunları bir araya getirirken sorun

Görüntü cihaz ekranında onlar kadar büyük ekran olacak bir Image Viewer, yapmaya çalışıyorum ne İşte

. Bunun için ve daha iyi bir kullanıcı deneyimi için bir Galeri düşünmüştüm. Oraya kadar her şey yolunda!

sorun benim Adaptörü işlevi GetView içinde, bu benim Galerisi'nde gereken ilk Image sadece Gallery.LayoutParams kullanmasıdır sorunu. Yani, eğer ilk resim bir manzara ve ikincisiyse, ikincisi de ilk olarak aynı boyutta manzara olarak gösterilecektir. Ben Gallery.LayoutParams sıfırlamak ama önemli değil, hala ilk ImageView LayoutParams var. Tüm çocukların

kod

public View getView(int position, View convertView, ViewGroup parent) { 

     ImageView im = new ImageView(mContext); 

     Bitmap bm = BitmapFactory.decodeByteArray(gallery.get(position).mContent, 0, gallery.get(position).mContent.length); 
     im.setImageBitmap(bm); 

     int width = 0; 
     int height = 0; 

     if (bm.getHeight() < bm.getWidth()) { 
      width = getWindowManager().getDefaultDisplay().getWidth(); 
      height = bm.getHeight() * width/bm.getWidth(); 
     } 
     else { 
      height = getWindowManager().getDefaultDisplay().getHeight(); 
      width = bm.getWidth() * height/ bm.getHeight(); 
       } 

     Gallery.LayoutParams lp = new Gallery.LayoutParams(width, height); 
     im.setLayoutParams(lp); 

     return im; 
} 

Aranızda gerçekten cevabını bilmek lütfen nedenlerine görürseniz,

cevap

4

Galeri kuvvetleri aynı boyutta olması. Ayrıca, her zaman getView() çağrıldığında yeni bir Görünüm oluşturuyorsunuz ve bu korkunç bir fikir. Null olmadığında convertView kullanmalısınız. Şu anda Galeri'de eksik bir özellik var, bu yüzden convertView her zaman boştur, ancak Android'in gelecekteki bir sürümünde bundan yararlanmak için convertView'ı kullanın. Yazdığınız her Bağdaştırıcıya uygulamanız gereken iyi bir uygulamadır.

+0

Videonuzu convertView hakkında çevrimiçi gördüm, uygularım. Yani mesajını anladım eğer Galeri'yi kullanmamın bir çözümü yok, doğru muyum? – Spredzy

+0

Daha fazla performans başarısı istiyorsanız, o zaman Tutucu Tasarım Kalıbı'nı da kullanabilirsiniz ve etiket hiyerarşisinde arama yapmak yerine etiket ve get etiketini ayarlayabilirsiniz. –

+0

Romain, Galeri'deki önbellekleme/geri dönüştürme mekanizmasının eksik olduğunu belirttiği için, bağdaştırıcınızda her zaman boş bir dönüşüm göreceksiniz. Bir alternatif olarak, önbellekleme/geri dönüştürme mekanizmasının çalışma uygulamasına sahip olan DroidUX GalleryFlow widget'ını kullanabilirsiniz. Galeri Galerisi için stok Galerisi için dropin yedeği olarak kullanabilirsiniz. –