2014-10-03 94 views
0

我有一個適配器,我想知道如何設置每個gridView項目的背景並設置一個模式?我有三個背景,我想將第一項設置爲bg1,第二項爲bg2,第三項爲bg3,第四項爲bg1,第五項爲bg2,第六項爲bg3,等等。設置每個gridView項目的背景?

我的猜測是這是在getView()下完成的,但我需要一些指導。這是我到目前爲止。

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

    View view = convertView; 
    ViewHolder holder; 
    if (view == null) { 
     LayoutInflater inflater = (LayoutInflater) mContext 
       .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     view = inflater.inflate(R.layout.item_grid, null); 
     holder = new ViewHolder(); 
     holder.llBackground = (LinearLayout) view.findViewById(R.id.llBackground); 
     view.setTag(holder); 
    } else { 
     holder = (ViewHolder) view.getTag(); 
    } 

    Picasso.with(mContext).load(mArrayList.get(position).getWebsite()).placeholder(R.drawable.old_graphic).centerCrop().resize(100, 100).into(holder.ivItem); 
    holder.llBackground.setBackgroundResource(R.drawable.bg2); 

    return view; 
} 

回答

2

您可以在values.xml像

<string-array name="grid_view_backgrounds"> 
    <item>@drawable/bg1</item> 
    <item>@drawable/bg2</item> 
    <item>@drawable/bg3</item> 
</string-array> 

創建可繪製的數組然後繼續你的adappter到TypedArray參考:

final TypedArray backgrounds = context.getResources().obtainTypedArray(R.array.grid_view_backgrounds); 

然後,只需使用位置的元素來計算陣列對應的元素,如:

holder.llBackground.setBackgroundResource(
    backgrounds.getResourceId(position % backgrounds.length(), 0) 
) 
+0

有趣。我會試試這個。謝謝。 +1回答 – portfoliobuilder 2014-10-03 23:52:37

+0

我可以問爲什麼downvote? – portfoliobuilder 2014-10-03 23:52:59

+0

不知道,不是我的,而是拿我的+1做一些平衡 – Logain 2014-10-04 00:10:45

相關問題