Intereting Posts
Изменить значки отмеченных и непроверенных для флажка для Android Как добавить звук в уведомление? AppCompat не поддерживает текущие функции темы – ничего не работает Отменить регистрацию устройства из GCM с помощью регистрационного идентификатора в Android Строка состояния становится белой и не отображает содержимое за ней Режим киоска в Android Скрытие изображений, которые не загружались Как сохранить данные в приложении для Android Как сделать программный вызов программным путем? Погрузчики в Android Honeycomb Android: TextView автоматически обрезает и заменяет последние 3 символа строки Использование пользовательской кнопки входа с Твиттером Twitter? Обнаружение, если у устройства Android есть подключение к Интернету Не найден ресурс, который соответствует указанному имени '@ style / Theme.AppCompat.Light' Лучший редактор формата XML для Android, чем тот, что в Eclipse

Виджеты Android: анимация на RemoteViews?

У меня нет слишком большого успеха, применяя анимацию к просмотрам внутри RemoteViews .

Для простоты предположим, что у меня есть виджет с ImageView и Button . При нажатии кнопки я хочу добавить простую анимацию в ImageView (например, поворот).

Поскольку я не могу получить ссылку, используя findViewById() как в Activity и RemoteViews не имеет сеттера для анимации, я не уверен, что мне делать.

Я думаю о замене RemoteViews для виджета новым макетом, похожим на оригинал, но у этого уже есть уже загруженная анимация. Я могу сделать это? Можно ли внедрить анимацию в макет?

Код будет примерно таким же, как для WidgetProvider:

 Intent intent = new Intent(context, RotateService.class); PendingIntent pendingIntent = PendingIntent.getService(context, 0, intent, 0); RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.a_widget); views.setOnClickPendingIntent(R.id.a_button, pendingIntent); appWidgetManager.updateAppWidget(appWidgetId, views); 

Затем в RotateService:

 ComponentName myWidget = new ComponentName(this, MyWidget.class); AppWidgetManager manager = AppWidgetManager.getInstance(this); RemoteViews newViews = buildNewRemoteViewsWithAnimation(); manager.updateAppWidget(myWidget, newViews); 

Любое другое предложение?

Solutions Collecting From Web of "Виджеты Android: анимация на RemoteViews?"

  1. Создайте пользовательскую анимацию.
  2. Создайте ProgressBar и установите в android: indeterminateDrawable анимацию.
  3. Добавьте ProgressBar в макет виджетов и сделайте его видимым (невидимым)

Вы пробовали использовать LayoutAnimation, определенную в xml. Это единственный способ добавить какой-либо эффект анимации в мой appwidget. Недостатком является то, что вы не можете управлять анимацией, поэтому каждый раз, когда макет виджетов перезагружается, то есть OnUpdate, анимация, определенная в XML, срабатывает.

В некоторых случаях это нормально, но не все.

Как следует из названия, LayoutAnimations применяются к макетам, поэтому легко указать, какие виды вы хотите анимировать, вложив их в свой собственный макет. В моем случае я использовал LinearLayout, и он работал нормально.

См. Picz на рынке для демонстрации этого.