2016-08-01 8 views
1

Ich habe eine Rasteransicht mit zwei Spalten. Ich möchte verschiedene Farben für die Rasteransichtszeilenelemente festlegen. Zum Beispiel möchte ich, dass 4 Farben abwechselnd nach jedem vierten Zeilenelement angewendet werden.Wie gelten verschiedene Farben für Gridview-Zeilenelemente in Android?

android:background="@color/dividerColor"/> 
<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="0dp" 
    android:layout_weight="1.6" 
    android:padding="8dp"> 
    <GridView 
     android:id="@+id/gridCategory" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:numColumns="2" 
     android:verticalSpacing="10dp" 
     android:horizontalSpacing="10dp" 
     android:stretchMode="columnWidth" 
     android:gravity="center"> 
    </GridView> 
</LinearLayout> 
+1

Sie können es in der benutzerdefinierten Adapter tun abhängig von der Position – Chol

+1

@Abhilash Harsole haben Sie diese Lösung versucht http: //stackoverflow.com/questions/18961709/how-to-set-alternate-row- color-in-a-gridview-android? rq = 1 – PN10

Antwort

1

dies hilft, versuchen Sie es.

class MyListAdapter extends BaseAdapter{ 

    @Override 
    public int getCount() { 
     return mList.size(); 
    } 

    @Override 
    public News getItem(int position) { 
     return mList.get(position); 
    } 

    @Override 
    public long getItemId(int position) { 
     return position; 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     if(convertView==null){ 
      convertView=View.inflate(mActivity, R.layout.gridview, null); 
      TextView tvContent = (TextView) convertView 
        .findViewById(R.id.iv_pic); 
     } 
     TextView info = getItem(position); 
     info.setText(info.title); 
     //Is to ensure that the two columns 
     int type=position/2; 
     //For each row processing respectively 
     switch(type){ 
      case 0: 
       convertView.setBackgroundColor(Color.parseColor("#ff0000")); 
       break; 
      case 1: 
       convertView.setBackgroundColor(Color.parseColor("#00ff00")); 
       break; 
      case 2: 
       convertView.setBackgroundColor(Color.parseColor("#0000ff")); 
       break; 
      case 3: 
       convertView.setBackgroundColor(Color.parseColor("#000000")); 
       break; 
     } 
     return convertView; 
    } 

} 
+0

Ich möchte Farbe als Hintergrund für jede Zeile Artikel –

+1

Methode Update anwenden, versuchen Sie es erneut. – lanniaoyidingying

+0

danke, es hat geklappt ... und was ist, wenn ich dasselbe für die Kartenansicht anwenden muss, die ich für jedes Zeilenelement genommen habe? –