Pull to refresh

Comments 27

при более глубоком использовании очень часто падает с outofmemory, ибо оно не умеет адекватно выгружать неиспользуемое.
да без проблем.
Ни для никого не секрет, что android не поддерживает gif анимацию.
Вот однажды попробовал создать frame by frame анимацию про помощи AnimationDrawable. Подготовил набор картинок для анимации (25 картинок и то это сильно уменьшил, на самом деле больше нужно было). Запускаю падает с outofmemory. первый же пост со стека прояснил ситуацию, этот супермего класс грузит сразу все картинки в память, а не по необходимости.

Да вообще последнее время разные приколы наблюдаю в ходе разработки.
Допустим взять тот же ArrayAdapter, у него есть метод setNotifyOnChange(boolean notifyOnChange)
Да можно установить false. но в первый раз как дернете сами notifyDataSetChanged(), оно снова станет true.
все кроется в этом чудо методе
Override public void notifyDataSetChanged() { super.notifyDataSetChanged(); mNotifyOnChange = true; }

Запостил на багтрекер ждемс… хотя с учетом что другой баг запостеный еще в декабре проигнорирован, то..)

И да проблема насчет анимации до сих пор еще открыта, может кто посоветует что дельное?
Тогда получается первый вариант (с поворотом одной картинки) более экономичен по ресурсам.
Было бы странно, если бы он грузил по необходимости, тормозя ui.
Но проблема актуальна, действительно
GIF поддерживается, но плохо. Просто его надо загружать через класс Movie. При этом на многих GIF-файлах при воспроизведении падают нативные ошибки и приложение закрывается. Еще как вариант можно открыть GIF в WebView, но проблемы при воспроизведении некоторых GIF-файлов все равно есть.
Писал свой декодер GIF с использованием NDK, но проблем с ним тоже было не мало. Так что если есть возможность — с гифом лучше не связываться.

Если в анимации кадров много, то через AnimationDrawable конечно не получится ее проиграть. Можно просто по одному загружать кадры, декодировать в Bitmap, отрисовывать и делать recycle. При этом 15-20 fps должно получится.
да с movie пробывал, там теряются время переходов между кадрами.
webview тоже не катит, проблемы с размерами да и с временем перехода тоже.
загружал по одному кадры на моем desire s работало превосходно, взял в офисе девайс послабее wildfire, и там дикие тормоза, поэтому тоже вариант откинул.

пока еще есть задачи по проекту, и поэтому к анимации возвращаюсь в свободное время, но пока ничего путного, а нужно…
Странно, вот как раз на wildfire все это и тестировалось. Если картинка лежит во внутренней памяти, то на ее декодинг уходит около 5 мс (кадры размером 320 х 525). Но GC при этом конечно работает не переставая.
Хотя если цель приложения — не только крутить анимацию, то наверное тормоза действительно будут :)
ага, анимация это так на пару секунд, помимо это в фоне задачи по общению с сервером крутятся, так что весело.
В последнее время все больше и больше задумываюсь, что возможно стоит брать таки какой-то 2d движок… Ибо написание кастомных контролов уже не везде спасает..)
Но черт побери, так не хочется лезть в эти дебри...)
Пробовал через AndEngine крутить анимацию по такому же принципу, надо буквально пару строчек кода, получается быстрее и симпатичнее.
Но правда если при этом поверх GLSurfaceView положить какие-нибудь стандартные контролы, то пользы от отрисовки через OpenGL ES становится немного.
Вот и нашли, как 2 ядра утилизировать… 1 работает, другое показывает анимацию изо всех сил.
надеюсь был потерян тег сарказм?)
По моему ваш ProgressBar совсем не Progress, а лишь знак говорящий, что система занята.
В android данный элемент называется ProgressBar, это его обычное круговое представление. Если нужен горизонтальный прогресс бар (например для индикации процесса загрузки или воспроизведения аудиофайла), тога нужно просто поменять стиль на progressBarStyleHorizontal
Я не придираюсь. Мне просто всегда казалось, что подобная анимация крайне не информативна. Возможно в этом направлении её и стоит «кастомизировать»…? Блин ну и слово.
Идея интересная. Попробую на досуге.
тс… не сдавайте козыри плиз.
Аааа!!! Живой миллионер в посте!
Миллион, это разве не за айос приложение было?
Но как Вы догадались, Шерлок?!
Синий прогресс бар из комплекта иконок для участников конкурса приложений.
Это не прогресс-бар. Прогресс бар это:
[|||||||||      ]
Потому как не является обозначением прогресса, ни явзяется прямоугольником. Я бы назвал сабж чем-нибудь типа «busy-ring».
Я бы тоже назвал как-то по другому, но увы это название контрола в Android.
Круговой — это ведь просто вариант indeterminate-progressbar'а, или нет? Он может быть и горизонтальным (с чередующимися полосками), но по умолчанию такой вот круглый.
Sign up to leave a comment.

Articles

Change theme settings