Intereting Posts
Сортировка массива имен файлов, содержащих строки с номерами Найти уже подключенные устройства Bluetooth автоматически, когда они находятся в зоне действия Заменить ListView с помощью RecyclerView BroadcastReceiver при изменении состояния сети Wi-Fi или 3g Векторная графика в списке слоев на более старых версиях Android Как показывать и скрывать предпочтения на Android динамически? Найдено com.google.android.gms: play-services-gcm: 8.3.0, но нужна версия 8.1.0 Программирование моего приложения для Android с помощью Gdbal sdk не определяет карданный маяк Мое приложение недоступно для планшетного устройства в Google Play Как настроить активность в полноэкранном режиме в Android? R.layout.main не может быть разрешен Вложенные RecyclerView с координаторомLayout Поддерживает ли платформа Android SpatiaLite? Класс широковещательного приемника и метод registerReceiver Можем ли мы получить доступ к микрофонному драйверу моего телефона Android

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