0

我正在尝试获取加载图像的位置,因此当我在 GridView 中单击它时,它会全屏显示。

问题是我不知道如何从我的适配器获取图像的位置!我需要设置 imageResurce ..imageView.setImageResource(MyAdapter.getItem(position));这是错误的。我仍然找不到加载图像的位置...

我的适配器代码:

public class ImageAdapter extends BaseAdapter {
    private LayoutInflater mInflater;
    public ArrayList<String> f = new ArrayList<String>();// list of file paths
    File[] listFile;
    Bitmap myBitmap;
    int position;

    public ImageAdapter(Context context) {
        mInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    }

    public int getCount() {
        return f.size();
    }

    public Object getItem(int position) {
        return f.get(position);
    }

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

    public View getView(int position, View convertView, ViewGroup parent) {
        ViewHolder holder;
        if (convertView == null) {
            holder = new ViewHolder();
            convertView = mInflater.inflate(
                    R.layout.galleryitem, null);
            holder.imageview = (ImageView) convertView.findViewById(R.id.thumbImage);

            convertView.setTag(holder);
        }
        else {
            holder = (ViewHolder) convertView.getTag();
        }


        myBitmap = BitmapFactory.decodeFile(f.get(position));
        holder.imageview.setImageBitmap(myBitmap);
        return convertView;
    }


    public void getFromSdcard()
    {
        File file= new File(android.os.Environment.getExternalStorageDirectory(),"/InstaDownloader-");

        if (file.isDirectory())
        {
            listFile = file.listFiles();


            for (int i = 0; i < listFile.length; i++)
            {
                f.add(listFile[i].getAbsolutePath());
            }
        }
    }
}
class ViewHolder {
    ImageView imageview;


}
4

2 回答 2

1

您只需要设置一个 OnItemClickListener 并将其分配给您的 GridView。它将为您提供所选项目的位置。

 OnItemClickListener myOnItemClickListener = new OnItemClickListener(){

  @Override
  public void onItemClick(AdapterView<?> parent, View view, int position,
     long id) {
           //Do what you need here, you have the position.
   }};

然后在代码中的某处确保将其分配给 GridView。

  mGridview.setOnItemClickListener(myOnItemClickListener);

祝你好运!

于 2014-09-17T00:54:09.097 回答
0

MyAdapter.getItem(position)没关系。还有什么?为什么这是错误的?你没说。请告诉价值(究竟是什么路径)?如果它真的是一个你不能使用的文件路径setImageResource(),那么它就不会来自资源。所以使用像 loadImageFromFile() 这样的东西(如果存在的话)。如果不存在,请使用 BitmapFactory 从文件加载并分配位图。

您帖子的标题非常混乱,而且没有重点。您已经知道“位置”,并且知道如何走正确的道路。您唯一不知道的是如何将图像从文件加载到 ImageView 中。但现在你知道了。如果您需要代码.. 只需谷歌这个网站就可以了,因为这样的代码已经在这里发布了很多次。

于 2014-09-17T06:48:04.580 回答