Какой лучший формат изображения для Android с точки зрения памяти? PNG рекомендуется для iOS, поскольку xCode делает с ним что-то волшебное. Это то же самое для Android?
В настоящее время я разрабатываю большое приложение с несколькими анимациями (раздвижные экраны, затухание и т.д.). Все работает хорошо до сих пор! Однако я заметил анимацию вида, где представление содержит ImageView с (довольно большим) PNG, поскольку источник немного отсталый.
Очевидно, что я могу сделать PNG меньше, но есть ли что-нибудь дополнительное, что я могу сделать, чтобы уменьшить объем памяти, который занимает ImageView/делает анимацию гладкой? Я знаю, что PNG имеет гораздо больший размер файла, чем JPEG, но я не вижу, что это проблема. JPEG или PNG (я полагаю), в конечном итоге, хранятся в виде массива цветов, поэтому они оба будут занимать одну и ту же память. PNG, вероятно, лучше для загрузки из-за меньшего количества циклов, раскалывающих. Снова я только предполагаю, что мои знания форматов файлов изображений равны нулю.
Альтернативно, есть ли что-то еще, вызывающее отставание? Является ли растровое изображение масштабированным, чтобы оно соответствовало представлению each onDraw() во время анимации, поэтому следует ли масштабировать растровое изображение в коде, прежде чем передавать его в ImageView?
Благодаря,
Форматы, поддерживаемые Android: PNG, JPG и GIF (также 9.png). Рекомендованный PNG, как указано в руководстве dev
Все они хранятся в памяти в виде растрового изображения, поэтому самое главное - это цветное изображение, например:
BitmapFactory.Options options = new BitmapFactory.Options();
options.inPreferredConfig = Bitmap.Config.RGB_565;
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.icon, options);
Дополнительная информация: qaru.site/questions/1306389/...
и добавить (после сотов):
<application
android:largeHeap="true"
...
к файлу манифеста: =)
спасибо моему дорогому другу :)