java - GridView 重复一张图像

标签 java android

这个问题之前已经被问过,但我找不到答案,如果这是一个重复的问题,我很抱歉。但我的 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);
        }
    }
}

这是我的图像适配器

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;

}
}

感谢您的任何反馈,作为一名正在接受培训的程序员,我们非常感激。

最佳答案

删除此 block ...

for (int i = 0; i < items.size(); i++) { 
     bm = items.get(i);
     imageView.setImageBitmap(bm); 
     return imageView;
     }

并添加这个

imageView.setImageBitmap(items.get(position));

关于java - GridView 重复一张图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44297639/

相关文章:

java - 在mysql,java中计算日期范围内的价格

java - Derby 数据库 - 确定层次结构中的级别以转换 DB -> DefaultMutableTreeNode Java 对象

java - 使用java读取特定单词后的文件

android - 如何使用 RxAndroidBLE 在 BLE 中创建绑定(bind)或配对

项目构造函数中的 Java Enum 私有(private)方法

android - 如何从android中的sqlite数据库更新数据库中的行

android - 如何从 Android 中的 GPS 获取坐标?

android - TextInputLayout 设计支持库不显示 setCounterEnable() 方法 android

android - Cordova 文件插件 : SECURITY_ERR

java - 是否有可能有一个流利的等待两个条件