Большой источник анимации ImageView - PullRequest
1 голос
/ 15 декабря 2011

Какой формат файла изображения для Android является лучшим с точки зрения памяти?PNG рекомендуется для iOS, так как xCode делает с ним что-то волшебное. То же самое для Android?

В настоящее время я разрабатываю большое приложение с несколькими анимациями (скольжение на экранах, исчезновение и т. Д. И т. Д.).Пока все работает хорошо!Однако я заметил анимацию вида, в которой вид содержит ImageView с (довольно большим) PNG, поскольку источник немного запаздывает.

Очевидно, что я могу сделать PNG меньше, но есть ли что-то еще, что я могу сделатьуменьшить объем памяти, который занимает ImageView / делает анимацию плавной?Я знаю, что PNG имеет гораздо больший размер файла, чем JPEG, но я не вижу в этом проблемы, JPEG или PNG (я полагаю) в конечном итоге сохраняется как массив цветов, поэтому они оба занимают одну и ту же память.PNG, вероятно, лучше подходит для загрузки из-за меньшего количества циклов распаковки.Опять же, я только предполагаю, что мои знания о форматах файлов изображений равны нулю.

В качестве альтернативы, есть ли что-то еще, вызывающее задержку?Масштабируется ли растровое изображение так, чтобы оно подходило для представления каждого onDraw () во время анимации, поэтому следует ли масштабировать растровое изображение в коде перед передачей его в ImageView?

Спасибо,

Ответы [ 2 ]

2 голосов
/ 15 декабря 2011

Поддерживаемые Android форматы: PNG, JPG и GIF (также 9.png). Рекомендуется PNG, как сказано в dev guide

Все они хранятся в памяти в виде растрового изображения, поэтому наиболее важная вещь - это цветовой код, например:

BitmapFactory.Options options = new BitmapFactory.Options();
options.inPreferredConfig = Bitmap.Config.RGB_565;
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.icon, options);

Дополнительная информация: stackoverflow

0 голосов
/ 09 февраля 2012

и добавьте (после сот):

<application 
    android:largeHeap="true"
    ...

в ваш файл манифеста : =)

благодаря моему дорогому другу:)

...