Как лучше всего делать анимацию виджетов на Android?

Я создал приложение для Android, которое также анимирует свой виджет в течение минуты во время работы (аналогично переключателю режима полета на телефонах HTC). Для анимации я использовал удаленные представления и фоновый поток, который меняет виджеты imageView примерно каждые 500 мс.

Код похож на этот:

appWidgetManager = AppWidgetManager.getInstance(context);
view = new RemoteViews(context.getPackageName(), R.layout.widgetlayout);
view.setImageViewResource(R.id.imageView, R.drawable.widgetGraphics);
appWidgetManager.updateAppWidget( new ComponentName(context, WidgetProvider.class), view);

(Анимация представляет собой простую покадровую анимацию с примерно 5 повторяющимися изображениями.)

Это решение работает вполне нормально, хотя кажется немного взломанным. Есть ли лучший способ анимировать виджеты? (Все в порядке, если он работает только после версии 2.3.3.)


person Wimagguc    schedule 12.07.2011    source источник


Ответы (1)


Виджеты приложений не предназначены для анимации. Скорее всего, «переключатель режима полета на телефонах HTC» — это не виджет приложения, а функция их домашнего экрана.

person CommonsWare    schedule 12.07.2011
comment
HTC: ты уверен? Вы можете установить его из меню добавления виджетов... (Я прочитал тонны статей о виджетах, и, по-видимому, каждая анимация требует много батареи, и поэтому мой будет легко включать / выключать, но все же я Думаю, это хорошая функция.) - person Wimagguc; 12.07.2011
comment
@Wimagguc: вы можете установить его из меню «Добавить виджет» — я могу поместить меню в любое приложение, имеющее метку «Добавить виджет», и ни одно из них не будет включать виджеты приложений. Это просто два английских слова. Создатели домашнего экрана часто смешивают встроенные функции, похожие на виджеты, с реальными виджетами сторонних приложений. Некоторое время HTC разделяла их на виджеты HTC и виджеты Android, но отказалась от этого, вероятно, из-за путаницы пользователей. Теперь, если вы устанавливаете стороннюю замену домашнего экрана, и она показывает переключатель режима полета HTC, тогда вы знаете, что это действительно виджет приложения. - person CommonsWare; 12.07.2011