這個問題以前已經問過,但我找不到答案,所以很抱歉,如果它是一個重複的問題。但我的gridView只是重複我傳遞給它的最後一張圖片。GridView重複一個圖像
這裏是我的onActivityResult這裏我選擇了從手機畫廊
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK)
{
if(requestCode == PICK_IMAGE_MULTIPLE)
{
ArrayList<Bitmap> items = new ArrayList<Bitmap>();
String[] imagesPath = data.getStringExtra("data").split("\\|");
try
{
lnrImages.removeAllViews();
}
catch (Throwable e)
{
e.printStackTrace();
}
for (int i=0; i<imagesPath.length; i++)
{
yourbitmap = BitmapFactory.decodeFile(imagesPath[i]);
items.add(yourbitmap);
}
adapter = new ImageAdapter(this, R.id.grdImages, items);
gridView.setAdapter(adapter);
}
}
}
這裏六張圖片是我imageadapter
public class ImageAdapter extends ArrayAdapter<Bitmap>
{
Bitmap bm;
private Context context;
private ArrayList<Bitmap> items;
public ImageAdapter(Context context, int textViewResourceId, ArrayList<Bitmap> items) {
super(context, textViewResourceId, items);
this.context = context;
this.items = items;
}
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
ImageView imageView;
if (convertView == null)
{
imageView = new ImageView(context);
imageView.setLayoutParams(new GridView.LayoutParams(185, 185));
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageView.setPadding(5, 5, 5, 5);
}
else
{
imageView = (ImageView) convertView;
}
for (int i = 0; i < items.size(); i++)
{
bm = items.get(i);
imageView.setImageBitmap(bm);
return imageView;
}
return imageView;
}
}
感謝您的反饋是大加讚賞,作爲一個程序員在培訓中。
任何人想什麼? – Shawnzey
最後一個循環的用途是什麼?爲什麼要多次調用'imageView.setImageBitmap'。 – cole
yea mike_d_boss只是指出了我,我thougth我不得不循環所有圖像通過 – Shawnzey