Anton
Как?🤔
Напомни завтра я кину кусочки кода... Сейчас уже сплю
ᛖᚹᛋᛁᚱ
Anonymous
Mr. Black
Дратути
Mr. Black
У меня есть вопрос по части изображений. Лет 5 назад пробовал галерею сделать с большими превью, но часто приложение крашилось из-за нехватки памяти. Спустя столько лет решил снова попробовать. Подскажите что я делал не правильно?)
Mr. Black
Mr. Black
При таких размерах вылетало
Mr. Black
Тогда был Android 4.4
Mr. Black
При таких размерах не вылетало, но уже ругалось на память в логах
Andrew
ты их не пережимал?
Andrew
я с вк апи работал какое-то время, они на все фотко-реквесты отправляют по 5 вариаций одной и той же фотки, вот для превью и берешь ту, что поменьше, а когда юзер уже кликает на нее - берешь другую ссылку, которая меньше пережата
Andrew
тут в принципе можешь придумать тоже что-то такого плана, если у тебя есть зашитые в приложение картинки, прежде чем сувать их в список - пережимай, чтобы они меньше весили, при нажатии на них - выдавай не пережатую версию, и не забывай использованые битмапы ресайклить, они сильну жрут натив хип
Mr. Black
тут в принципе можешь придумать тоже что-то такого плана, если у тебя есть зашитые в приложение картинки, прежде чем сувать их в список - пережимай, чтобы они меньше весили, при нажатии на них - выдавай не пережатую версию, и не забывай использованые битмапы ресайклить, они сильну жрут натив хип
Дело в том, что их пережимал я под размер View. Помню ещё проблемы были, что нельзя было получить размер этого view, пока не вставишь в него изображение. Кароч там же нельзя поставить джпег, только битмап, естественно размер превью в памяти зависел от кол-ва пикселей и кушал всю память
Mr. Black
Если сжимать картинки, они да потом мало весят, но у них при этом очень малоенькое разрешение и если растянуть изображение разрешением меньше, чем сам view, то получается мыло
Mr. Black
А мне хотелось очень чёткого изображения
Mr. Black
Вот и задаюсь по сей день вопросом, каким образом н ютубе превью работают, например. Думал уже что обработкой изображений должен заниматься не CPU, а GPU
Andrew
Andrew
Mr. Black
Варнинги, но это было так давно, что я не вспомню точно что там было написано
Mr. Black
Может я не тот view использовал. Ютуб же превью большие использует и проблем нет. Зотя там даже вместо изображений бывают видео превью
Andrew
Andrew
ты же использовал recyclerview?
Mr. Black
ресёкл да, помню что-то такое. Сейчас гляну в исходниках что я там понаговнокодил
Mr. Black
ты же использовал recyclerview?
Что-то нашёл, вроде работало через это. В исходниках остался только метод работы файловой системы и массива путей к картинкам
Bitmap output = Bitmap.createBitmap(bitmap.getWidth() + 20, bitmap.getHeight() + 20, Bitmap.Config.ARGB_8888);
Mr. Black
Успел отправить, электричество вырубили :D
Andrew
Mr. Black
Вот помню менял ARGB на самый мухаморный 4 бит вроде
Mr. Black
Вроде да, этот метод по пути файла делал превью из полного размера
Mr. Black
Сейчас бы вспомнить точно для чего это было
Mr. Black
Я думаю делал я с карефаном тогда не правильно
✙
Mr. Black
это где такое?
Это было 5 лет назад, я говнокодил как мог, простите
✙
ну это код для чего?
Andrew
ну я сейчас сорцы покопал, этот метод битмапа создает пустой битмап
Mr. Black
Я бы порылся и скинул ещё пару ужасов, но у меня свет дома вврубили
✙
мб вы просто не так ресайзили
Mr. Black
Переформулирую. Мы сощдали пустой битмап с указаным размером, потом поместили в это пространство полное изображение и обрезали. Вроде логика такая была, если я ничего не путаю
✙
обрезали в смысле уменьшали?
Mr. Black
Далвик кеш ругался. Даже помню что-то такое, что меняли разрешение на ввделение больше памяти системой для приложения, но это не помогло
Anton
Mr. Black
Mr. Black
Причём кроссплатформенный
Anton
Это все библиотеки. И glide
Mr. Black
Аааа
Mr. Black
Не хочу использовать фреймворки. Я из-за этого веб бросил. Спустя год решил андрюшку попробовать 😔
Stanislav
Подскажите, пожалуйста, где можно прочитать о том, как по локации узнать адрес.
Заранее спасибо
Vladislav
Ну и читать соответсвтенно документации для этих api
Andrew
Сыктывкариум
Mr. Black
Сыктывкариум
А что без этого не обойтись?
Ну если ты готов на решение тривиальной задачи тратить 4 часа вместо одной строчки в коде и одной строчки в граддл - то обойтись.
Mr. Black
Сыктывкариум
А что без этого не обойтись?
Представь задачу, сполучить по ссылке картинку, загрузить ее и поместить в imageview. На вскидку, сколько понадобится кода, времени и трай-кэтчей?
А вот как это делается с помощью библиотеки:
Picasso.get().load("http://i.imgur.com/DvpvklR.png").into(imageView);
Mr. Black
Mr. Black
Ничему
Mr. Black
Хочу научиться создавать такие фреймворки. А то сейчас модно ничего не знать, да скачивать библиотеки и на них всякое говнище писать кривое, коем забито более половины маркета
Andrew
Разве использовать готовые библиотеки это плохо? Например, на C вполне норм юзать stdlib для println("Hello, world\n") чем делать свою реализацию.
Andrew
Точно также и в андройде
Mr. Black
Не ну это да
Mr. Black
А есть приложения очень лаговые
Andrew
Я кучу времени потратил и много кода, чтобы слать post запросы, в итоге плюнул и взял Retrofit
Mr. Black
Как и сайты
Mr. Black
На вордпресах всяких или симфонах
Mr. Black
Да слышал я про время, заезжаная тема, всё я жто проходил. Больная тема у меня. Но я хочу научиться или понять как эти рфеймы работают
Mr. Black
Для меня опыт знание полезнее сейчас, нежели сделать что-то быстро
Сыктывкариум
Mr. Black
Да нету у меня заказчиков