No estoy teniendo demasiado éxito aplicando animaciones a vistas dentro de un RemoteViews
.Android Widgets: ¿Animaciones en RemoteViews?
En aras de la simplicidad, digamos que tengo un widget con un ImageView
y un Button
. Al hacer clic en el botón, quiero agregar una animación simple a ImageView (una rotación, por ejemplo).
Como no puedo obtener una referencia usando findViewById()
como en un Activity
y RemoteViews
no tengo un setter para una animación, no estoy seguro de qué hacer.
Estoy pensando en reemplazar las RemoteViews para el widget con un nuevo diseño, similar al original, pero este tiene la animación ya cargada. ¿Puedo hacer esto? ¿Es posible incrustar una animación en un diseño?
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);
Luego, en RotateService:
ComponentName myWidget = new ComponentName(this, MyWidget.class);
AppWidgetManager manager = AppWidgetManager.getInstance(this);
RemoteViews newViews = buildNewRemoteViewsWithAnimation();
manager.updateAppWidget(myWidget, newViews);
Cualquier otra sugerencia?
su Picz no es libre, se puede dar más detalles, gracias a que – pengwang
confirmado, que la vieja escuela 'layoutAnimation', [tal como se describe en este artículo] (http://knowledgefolders.com/akc/display?url=displaynoteimpurl&ownerUserId=satya&reportId=2946) funciona en appwidgets. Tenga en cuenta que se reproducirá en cada actualización de widget completa, por lo que solo es realmente adecuado como reacción a la entrada del usuario y se debe desactivar después de un tiempo de espera excedido. – user1643723