Я создаю приложение, которое включает в себя внутреннюю галерею (которую я реализую с помощью 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), в папке не будет другого файла.расширение.
Итак, как мне это сделать?