изображения в GridView с задержками при каждом отображении новых изображений при прокрутке вверх / вниз - PullRequest
0 голосов
/ 17 декабря 2018

Я создаю приложение, которое включает в себя внутреннюю галерею (которую я реализую с помощью GridView), которая использует в качестве изображений содержимого внутри моей папки «assets», подход, который я использую для отображения изображений:

//this is the method getView in the Adapter class i make
    public View getView(int position, View convertView, ViewGroup parent) {
        View view = getLayoutInflater().inflate(R.layout.image_layout, parent, false);
        ImageView image = (ImageView)view.findViewById(R.id.myImage);
        InputStream stream;
        try {
            stream = getAssets().open("gallery/"+getItem(position));
            Drawable d = Drawable.createFromStream(stream, null);

            if (Build.VERSION.SDK_INT >= 16) image.setBackground(d);
            else image.setImageDrawable(d);

            stream.close();
        } catch (IOException e) {
            e.printStackTrace();
        }

        return view;
    }

Изображения отображаются правильно, но когда я прокручиваю вверх и вниз, всякий раз, когда в сетке отображается новое изображение, приложение немного отстает на несколько миллисекунд, но представьте, что оно запаздывает каждый раз, когда изображенияотображается, это раздражает, что я хочу, чтобы галерея работала плавно, когда я прокручиваю вверх и вниз, чтобы увидеть изображения.Это возможно таким способом (открывая их из папки ресурсов)? Или я должен написать метод, чтобы скопировать изображения во внешнее хранилище и показать изображения оттуда?

Примечания:

  • Количество изображений будет около 40.

  • Моя цель - открыть их в папке "assets" или "res", если это возможно для бесперебойной работы.

  • Важно добавлять изображения, не зная их имен, в папке с названием «галерея» будут храниться изображения, которые должны отображаться (все они .jpg), в папке не будет другого файла.расширение.

Итак, как мне это сделать?

...