2011-07-18 14 views
0

グリッドビュー用のGoogleのサンプルコードから始めましたが、どの画像を表示するかはどのように選択しますか?一度eq1とeq4を表示したかったとしますが、eq3、eq 6、eq12を表示したいときは、コードに何をする必要がありますか? Integer配列には、常に同じではない別の部分のアプリケーションの整数が含まれています。これらの整数は、どの画像がグリッドに対応するかを取得しようとしています。グリッドビューに表示されるイメージリソースを選択する方法を教えてください。

public class ImageAdapter extends BaseAdapter { 
private Context mContext; 
private int length; 
private Integer[] choices; 

public ImageAdapter(Context c, int inLength, Integer[] inChoices) { 
    mContext = c; 
    length = inLength; 
    choices = inChoices; 
} 

public int getCount() { 
    return length; 
} 

public Object getItem(int position) { 
    return null; 
} 

public long getItemId(int position) { 
    return 0; 
} 

// create a new ImageView for each item referenced by the Adapter 
public View getView(int position, View convertView, ViewGroup parent) { 


    ImageView imageView; 
    if (convertView == null) { // if it's not recycled, initialize some attributes 
     imageView = new ImageView(mContext); 
     imageView.setLayoutParams(new GridView.LayoutParams(200, 50)); 
     imageView.setScaleType(ImageView.ScaleType.CENTER_INSIDE); 
     imageView.setPadding(8, 8, 8, 8); 
    } else { 
     imageView = (ImageView) convertView; 
    } 

    imageView.setImageResource(mThumbIds[position]); 

    return imageView; 

} 

// references to our images 
private Integer[] mThumbIds = { 
     R.drawable.eq1, R.drawable.eq2, 
     R.drawable.eq3, R.drawable.eq4, 
     R.drawable.eq5, R.drawable.eq6, 
     R.drawable.eq7, R.drawable.eq8, 
     R.drawable.eq9, R.drawable.eq10, 
     R.drawable.eq11, R.drawable.eq12, 
     R.drawable.eq13, R.drawable.eq14, 
     R.drawable.eq15, R.drawable.eq16, 
     R.drawable.eq17, R.drawable.eq18, 
     R.drawable.eq19, R.drawable.eq20, 
     R.drawable.eq21, R.drawable.eq22 
}; 

}

答えて

0

この動作方法は、ビューを表示する方法を多くの画像を決定するためにImageAdapter.getCountを呼び出すことであり、それは、各位置(0、1ためImageAdapter.getViewを呼び出す...、最大getCount()-1)。あなただけのEQ1とEQ4を表示したいのであれば、getCountは2を返す必要があり、その後getViewにあなたが望むどのmThumbIds要素を知っている何かをラインに

imageView.setImageResource(mThumbIds[position]); 

を交換する必要があります。これは実際にどの画像を表示するかを決める方法に依存します。多くの場合、あなたはちょうどあなたがしたいだけの要素を持つmThumbIdsを再作成しますが、あなたは間接の別の層を望んでいた場合、あなたはこのような何かを試みることができる:と

// This will give you eq1 and eq4 
private Integer[] mActiveImages = {0, 3}; 

public int getCount() { 
    return mActiveImages.length; 
} 

をしてgetViewにその1つの行を置き換える:

imageView.setImageResource(mThumbIds[mActiveImages[position]]); 
+0

ああ完璧。私は前と同じようなことをしようとしましたが、私はそれを乱さなければなりません。私は本当に助けに感謝します。 – tedbrooks2

関連する問題