Изменить изображение в виджете - PullRequest
2 голосов
/ 14 января 2011

Как у меня есть одно изображение в моем виджете, затем, когда его щелкают, меняют на другое изображение? Это виджет только с ImageButton, но я не уверен, куда идти после этого, я знаю все об ожидаемых намерениях и тому подобное, но это здесь не поможет, если я что-то упустил ... вот мой onUpdate

public void onUpdate(Context context,AppWidgetManager appWidgetManager,int[] appWidgetIds){
   RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.widget);
   PendingIntent onPendingIntent = PendingIntent.getService(context, 0, new Intent(context, widgetService.class), 0);
   remoteViews.setOnClickPendingIntent(R.id.ImageButton01, onPendingIntent);
   appWidgetManager.updateAppWidget(appWidgetIds, remoteViews);
 }

Ответы [ 2 ]

5 голосов
/ 25 июля 2011

Я думаю, это то, что вы ищете

 /* get the handle on your widget*/
 RemoteViews views = new RemoteViews(getPackageName(), R.layout.your_widget_layout);
 /* replace the image */
 views.setBitmap(R.id.id_of_your_imageview, "setImageBitmap", yourBitmap);

 /* update your widget */
 ComponentName thisWidget = new ComponentName(this, YourWidget.class);
 AppWidgetManager manager = AppWidgetManager.getInstance(this);
 manager.updateAppWidget(thisWidget, updateViews);
1 голос
/ 14 января 2011

Попробуйте:

public void onUpdate(Context context,AppWidgetManager appWidgetManager,int[] appWidgetIds){
   RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.widget);
   PendingIntent onPendingIntent = PendingIntent.getService(context, 0, new Intent(context, widgetService.class), 0);

   remoteViews.setOnClickPendingIntent(R.layout.widget2, onPendingIntent);
                                      **add widgetON.xml*

Создайте отдельный макет .xml для изображения "widgetON".(Widget2) Затем, вам придется возиться с удаленными представлениями, чтобы различать представления ON / OFF

Я думаю.: D

...