开发者

Android Widgets: Animations on RemoteViews ? [duplicate]

开发者 https://www.devze.com 2023-01-24 02:00 出处:网络
This question already has answers here: Is there a way to animate on a Home Widget? (5 answers) Closed 6 years ago.
This question already has answers here: Is there a way to animate on a Home Widget? (5 answers) Closed 6 years ago.

I'm not having too much success applying animations to views inside a RemoteViews.

For the sake of simplicity, let's say I have a widget with an ImageView and a Button. When clicking the button, I want to add a simple animation to the ImageView (a rotation for example).

Since I can't get a reference using findViewById() like in an Activity and RemoteViews doesn't have a setter for an animation, I'm not sure what should I do.

I'm thinking of replacing the RemoteViews for the widget with a new layout, similar to the original but this one has the animation already loaded. Can I do this? Is it possible to embed an animation in a layout?

Code would be something like this for the 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);

Then in RotateService:

ComponentName myWidget = new ComponentName(this, MyWidget.class);
AppWidgetManager manager = AppWidget开发者_运维问答Manager.getInstance(this);
RemoteViews newViews = buildNewRemoteViewsWithAnimation();
manager.updateAppWidget(myWidget, newViews);

Any other suggestion?


  1. Create custom animation.
  2. Create ProgressBar and set in android:indeterminateDrawable your animation.
  3. Add ProgressBar to your widget layout and make it visible(invisible)
0

精彩评论

暂无评论...
验证码 换一张
取 消