получить URI изображений, отображаемых в gridview - PullRequest
1 голос
/ 14 июня 2011

Я очень плохо знаком с Android, и я застрял здесь.У меня есть сетка, которая показывает изображения с моей SDCard, и флажок с каждым изображением для множественного выбора.Теперь после выбора я хочу отправить изображения в виде сервлета в многочастном http-запросе.Я думаю (поправьте меня, если я не прав), что мне нужны URI-изображения для этого, но у меня нет возможности получить их после выбора пункта меню.Вот код

@Override
public boolean onOptionsItemSelected(MenuItem item)
{
    switch (item.getItemId())
    {
    case R.id.sendPics:
        // TODO - add code to get and send pics
        GridView grid = (GridView) findViewById(R.id.imageGrid);
        ImageAdapter imageAdapter = (ImageAdapter) (grid.getAdapter());

        for (int i = 0; i < grid.getChildCount(); i++)
        {
            Images im = (Images) imageAdapter.getItem(i);
            View view = grid.getChildAt(i);
            CheckBox cb = (CheckBox) view.findViewById(R.id.checkbox);
            // ImageView iv = (ImageView) view.findViewById(R.id.image);

            if (cb.isChecked())
            {
                Log.d(TAG, ">>>>>>>>>>checked check box found<<<<<<<<<<");

                // TODO get the image path hre to send as a multipart http request
            }
        }

        return true;
    default:
        return super.onOptionsItemSelected(item);
    }
}

я получаю адаптер изображения, чтобы получить загруженное изображение из этой записи android Как получить путь к изображению из GridView через слушатель onItemClick , но я не могу найти любой класс LoadedImageв моем проекте так застряли.любая помощь будет высоко ценится.

edit: Images im = (Images) imageAdapter.getItem (i);в этой строке я не могу найти класс LoadedImage, поэтому я решил попробовать с изображениями, что неправильно.

Ответы [ 2 ]

3 голосов
/ 14 июня 2011

Используйте следующую логику, чтобы получить путь ко всем изображениям, присутствующим в галерее. Создайте свою собственную PhotoGrid для отображения всех изображений. сохранить путь изображений в arraylist. покажите изображение в виде сетки, взяв ури из архива.

Следующий массив содержит путь ко всем изображениям на SD-карте. НаItemclick вы получите, какая позиция нажата, и, следовательно, из массива вы можете получить путь к изображению.

ArrayList<String> listOfAllImages = new ArrayList<String>();
String absolutePathOfImage = null;
uri = android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI;

            String[] projection = { MediaColumns.DATA,
                    MediaColumns.DISPLAY_NAME };

            cursor = activity.managedQuery(uri, projection, null, null, null);
            column_index = cursor.getColumnIndexOrThrow(MediaColumns.DATA);
while (cursor.moveToNext()) {
absolutePathOfImage = cursor.getString(column_index);
listOfAllImages.add(absolutePathOfImage);
}

Спасибо, Дипак

0 голосов
/ 14 июня 2011

вы на самом деле должны получить путь к файлу на SD-карте.если вы загружаете его в виде изображения, вы, вероятно, имеете его в объекте адаптера (например, вызывая im.getImagePath () или что-то для получения пути в вашем случае), после чего вы можете создать Uri, если вам это нужно, или выиспользуйте часть файла для составной загрузки, которая может быть создана из пути к изображению.из URI вы можете просто открыть поток и получить streamPart для составной загрузки.все, что работает лучше для вас, имеет тот же результат.хотя с помощью Uri можно получить изображения, к которым обычно нельзя получить доступ по пути (например, фотографии контактов, которые хранятся в памяти телефона, а не на sdCard).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...