Всем привет. Делаю приложения для редактирования фото и хочу добаивть стикеры в приложение. Нашел достаточно много стикеров в интернете но столкнулся с проблемой отображения. Все стикеры тобишь PNG картинки у меня находяться в папке drawable (350 штук) при отображении DialogFragment внутри которого RecyclerView происходит подвисание пока все картинки не отрисуються и потом при скролинге тоже немного подвисает из за большого количества картинок. Я пробовал сжать картинки и уменшить качество
public Bitmap getResizedBitmap(Bitmap image, int maxSize) {
int width = image.getWidth();
int height = image.getHeight();
float bitmapRatio = (float)width / (float) height;
if (bitmapRatio > 1) {
width = maxSize;
height = (int) (width / bitmapRatio);
} else {
height = maxSize;
width = (int) (height * bitmapRatio);
}
return Bitmap.createScaledBitmap(image, width, height, true);
}
Но это значительно не повлияло на проблему. Как сделать что бы все работало без подвисаний?
Вообще желательно 350 картинок хранить на бекенде и при необходимости подгружать стикеры. В вашем случае если стикеры все таки хранятся локально, getResizedBitmap не нужно делать это нагрузка большая , руками сожмите картинки и уже сжатые добавьте в drawables + не надо все 350 отдавать RecyclerAdapter , используйте пагинацию, ну и для отображения советую Glide.
Помог ресайзинг отображаемых фото я сделал это через Piscasso образом:
Picasso.get().load(stickerList[position])
.resize(80,100)
.into(holder.imgSticker);
Лаги при скроле recyclerview прошли.
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости