RemoteViews
内のビューにアニメーションを適用することにあまり成功していません。
簡単にするために、ImageView
とButton
のウィジェットがあるとしましょう。ボタンをクリックしたときに、ImageViewに簡単なアニメーション(回転など)を追加したいと思います。
Activity
のようにfindViewById()
を使用して参照を取得できず、RemoteViews
にはアニメーションのセッターがないため、どうすればよいかわかりません。行う。
ウィジェットのRemoteViewを元のレイアウトと同様の新しいレイアウトに置き換えることを考えていますが、これにはアニメーションが既にロードされています。これはできますか?アニメーションをレイアウトに埋め込むことはできますか?
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);
他の提案はありますか?