2013-03-04 11 views
5

Tek bir ızgara görünümü arka plan değiştirme Şu anda her satırda en fazla 3 görüntü içeren bir kitap raf göstermesi gereken bir android uygulama geliştiriyorum. Bunun için gridview kullanıyorum. Ama gridview'de bir satırın arka planını değiştiremediğim bir noktada sıkıştım. bana bunu nasıl yapacağımı söyleyen var mı? GRIDVIEWAndroid

private class SampleGridAdapter extends BaseAdapter{ 

    private Context context; 
    private int[] images = {"R.drawable.img1","R.drawable.img2","R.drawable.img3","R.drawable.img4","R.drawable.img5","R.drawable.img6","R.drawable.img7"}; 
    public SampleGridAdapter(Context context) { 
     super(); 
     this.context = context; 

    } 
    @Override 
    public int getCount() { 
     // TODO Auto-generated method stub 
     return images.length; 
    } 
    @Override 
    public Object getItem(int arg0) { 
     // TODO Auto-generated method stub 
     return null; 
    } 

    @Override 
    public long getItemId(int arg0) { 
     // TODO Auto-generated method stub 
     return 0; 
    } 

    @Override 
    public View getView(int arg0, View arg1, ViewGroup arg2) { 
     // TODO Auto-generated method stub 

     View v = null; 
     ImageView coverImageView; 

     LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 

      v = inflater.inflate(R.layout.bookgrid, null); 
      coverImageView = (ImageView) v.findViewById(R.id.coverImageView); 
      coverImageView.setImageResource(images[position]); 


      coverImageView.setScaleType(ImageView.ScaleType.FIT_XY); 

     return v; 
    } 
} 

bookgrid.xml

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:background="@drawable/shelfimage" > 

<ImageView 
    android:id="@+id/coverImageView" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:paddingBottom="0dp" 
    android:paddingLeft="25dp" 
    android:paddingTop="6dp" 
    android:src="@drawable/ic_launcher" /> 
</RelativeLayout> 

için kullanılan

adaptör benim gridview bildiriminde 3 olarak sütun sayısını belirledik. Burada xml dosyasındaki arka planı android olarak ayarladım: background = "@ drawable/shelfimage". ama her bir öğe için arka plan ayrı ayrı ayarlıyor ...... Her satır için tek bir görüntü ayarlamak istiyorum (3 öğeye sahip) ....

+0

Eğer tek bir satır ne demek !! GridView bir ürüne tıklama sağlar – Sameer

+2

Her satırda "3" öğe içeren liste görünümü istemediğinizden emin misiniz? –

+0

Bazı kod – Shiv

cevap

1

Yanıt, benim anladığım için sen soru

Eğer, adaptör sınıfında gridview için bir adaptör kullanıyorsunuz ve getView yöntemini kullanarak konumu kontrol edin ve rengi şişirdiğiniz düzende ayarlayın. Adaptör sınıfı getview yönteminde şişirme görünümünün bg'si belirli pozisyonlar için değiştirilebilir.

Bağdaştırıcı kullanarak görünümü gerçekleştirdiyseniz, mantık çalışır.

+1

Cevabınız için teşekkürler ... mantığınız ile bireysel ızgara öğesinin arka planını değiştirebiliyorum .... ama gridview'de tam bir satır için bir arka plan koymanın herhangi bir yolu olup olmadığını bilmem gerekiyor .. – akh

+0

evet, nasıl tasarlandığınıza bağlı UI/satır. Kodunuzu soru ile yapıştırırsanız. yardımcı olacak. –

+0

Kodu ekledim ... – akh

2

this bakabilirsiniz, size yardımcı olacaktır.

0

Bunu başarmanın tek yolu (belki ya da) dikey yönde tekrarlar GRIDVIEW için bir örnek kod arka plan görüntüsü ayarlayarak olduğunu düşünüyorum:

Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.bg_image); 
BitmapDrawable bitmapDrawable = new BitmapDrawable(bmp); 
bitmapDrawable.setTileModeXY(TileMode.REPEAT, TileMode.REPEAT); 
gridView.setBackgroundDrawable(bitmapDrawable);