Как получить позицию загруженного изображения - Android

Я пытаюсь определить положение загруженного изображения, поэтому, когда я нажимаю на него в моем GridView, оно показывает мне его в полноэкранном режиме.

Дело в том, что я не знаю, как получить положение моего изображения из моего адаптера! Мне нужно установить изображение. 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;


}

2 ответа

Решение

Вам просто нужно настроить 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);

Удачи!

MyAdapter.getItem(position) в порядке Что-то еще? Почему это было бы неправильно? Ты этого не говорил. Скажите пожалуйста значение (какой именно путь)? И если это действительно путь к файлу, вы не можете использовать setImageResource() как это было бы не из ресурсов тогда. Поэтому используйте что-то (если таковое существует), например loadImageFromFile(). И если этого не существует, используйте BitmapFactory для загрузки из файла и назначения растрового изображения.

Заголовок вашего поста очень запутанный и не по сути. Вы уже знаете "положение" и знаете, как выбрать правильный путь. Единственное, что вы не знали, это как загрузить изображение из файла в ImageView. Но теперь ты знаешь. И если вам нужен код.. Просто Google этот сайт для него, так как такой код был опубликован здесь много раз.

Другие вопросы по тегам