Я получаю сообщение об ошибке. (Realpath to Image file) - PullRequest
0 голосов
/ 01 июля 2018

введите описание изображения здесь

Я первым использую Android Studio, поэтому у меня много трудностей. Я хочу сделать свою собственную галерею на вкладке ГАЛЕРЕЯ. Вкладка Галерея представляет собой фрагмент и сетку. Я получаю URI и конвертирую в путь. Это файлы в симуляторе. Непреднамеренно realpath просматривается в GALLERY TAB, и я хочу посмотреть реальное изображение во вкладке. Я не знаю, как инвертировать путь в файлы изображений. Извините, что не хорошо владею английским.

int a = 0;
public String getPath(Uri uri) {
    String[] projection = {MediaStore.Images.Media.DATA};
    Cursor cursor = getActivity().getContentResolver().query(uri, null, null, null ,null);
    int columnIndex = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
    cursor.moveToPosition(a);
    return cursor.getString(columnIndex);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    View view = inflater.inflate(R.layout.fragment_tab2, container, false);
    GridView f1 = view.findViewById(R.id.gridView);


    Uri uri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
    Uri[] projection = {MediaStore.Images.Media.EXTERNAL_CONTENT_URI};

    Cursor cursor = getActivity().getContentResolver().query(uri, null, null, null ,null);
    ArrayList<String> result = new ArrayList<String>();

    if(cursor.moveToFirst()){
        do{
            result.add(getPath(uri));
            a++;
        }while(cursor.moveToNext());
    }


    ArrayAdapter<String> arrayadapter = new ArrayAdapter<String>(getContext(), android.R.layout.simple_list_item_1, result);
    f1.setAdapter(arrayadapter);


    return f1;
}

Этот код находится во фрагментном файле.

1 Ответ

0 голосов
/ 01 июля 2018

Добавьте ImageView как элемент внутри макета вашего адаптера. Добавьте библиотеку Glide в ваш проект и используйте URI для загрузки изображений. Вы также можете использовать другую библиотеку для загрузки изображений.

Проверьте эту ссылку о том, как использовать библиотеку и образец. https://github.com/bumptech/glide

образец кода

ImageView imageView = (ImageView) findViewById(R.id.my_image_view);
GlideApp.with(this).load(new File(pictureUri.getPath())).into(imageView);

Вы не можете использовать ArrayAdapter для достижения того, что вы хотите. Ищите RecyclerView с imageView , вы получите много примеров кода.

...