Widgets de Android: Animaciones en RemoteViews?
No estoy teniendo demasiado éxito aplicando animaciones a las vistas dentro de una RemoteViews
.
Para simplificar, digamos que tengo un widget con ImageView
y un Button
. Al hacer clic en el botón, quiero añadir una animación simple a la ImageView (una rotación por ejemplo).
- Android: Hacer una llamada telefónica desde el widget de pantalla de inicio
- Actualización de Android Widget
- Actualizar Android Widget de la actividad
- El widget de la aplicación de Android se bloquea después de un período de tiempo indefinido
- Android - Declare widget en el manifiesto
Dado que no puedo obtener una referencia usando findViewById()
como en una Activity
y RemoteViews
no tiene un setter para una animación, no estoy seguro de qué debo hacer.
Estoy pensando en reemplazar las RemoteViews por el widget con un nuevo diseño, similar al original pero éste tiene la animación ya cargada. ¿Puedo hacer esto? ¿Es posible incorporar una animación en un diseño?
El código sería algo como esto para el 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);
A continuación, en RotateService:
ComponentName myWidget = new ComponentName(this, MyWidget.class); AppWidgetManager manager = AppWidgetManager.getInstance(this); RemoteViews newViews = buildNewRemoteViewsWithAnimation(); manager.updateAppWidget(myWidget, newViews);
¿Alguna otra sugerencia?
- ¿Hay herramientas de interfaz de usuario personalizadas para Android?
- ¿Cómo almacenar datos para un widget?
- ¿Cómo poner varios tamaños de widget en un apk?
- OnClick PendingIntent en widget a veces no funciona
- EditText: Desactivar el menú emergente de Pegar / Reemplazar en el evento de clic del controlador de selección de texto
- OnUpdate NUNCA llamado - Android Widget
- No se puede actualizar el widget android desde BroadcastReceiver
- ¿Cómo se ejecuta una actividad desde un botón de un widget en Android?
- Cree una animación personalizada.
- Crear ProgressBar y establecer en android: indeterminateDrawable su animación.
- Añadir ProgressBar a la disposición de tu widget y hacerla visible (invisible)
¿Ha intentado usar una LayoutAnimation definida en xml. Esta es la única manera que he encontrado para agregar cualquier tipo de efecto de animación a mi appwidget. La desventaja es que no se puede controlar la animación, por lo que cada vez que se vuelve a cargar el diseño del widget, es decir, un OnUpdate, la animación definida en XML se disparará.
Esto está bien en algunas circunstancias pero no en todas.
Como su nombre sugiere LayoutAnimations se aplican a Layouts, por lo que es fácil especificar qué vistas desea animar anidándolas en su propio Layout. Utilicé LinearLayout en mi caso y funcionó bien.
Ver Picz en el mercado para una demostración de esto.
- Selector de números de diálogo de Android
- Cómo poner el relleno / espaciado entre el elemento de vista de lista y la barra de desplazamiento