Intereting Posts
Ошибка Strange xml: неправильная строка заканчивается Вставить массив в базу данных SQLite в android Нет никаких отладочных процессов в студии Android при подключении к телефону, на котором работает android 6.0 Как перетащить элемент из списка и отбросить его на внешнем textView? Как построить APK и отдельные библиотеки, которые приложение загружает динамически Приложение несовместимо с планшетом Разница между базовым контекстом, контекстом приложения и контекстом активности Несколько карт v2 в TabActivity Список зарезервированных слов в Android HTML5 Android Phonegap Web-приложение не работает в автономном режиме с манифестом кэша Совместите левый край с центром – RelativeLayout Как создать несколько приложений для Android с одной базы кода Можем ли мы программно включить / отключить отладку USB на устройствах Android? Может ли bluetooth или wifi-поток (spp) когда-либо пропускать байты или иметь поврежденные? Выбор нескольких значений из выпадающего списка

Виджеты 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 на рынке для демонстрации этого.