Android小部件ImageButton在旋转屏幕时丢失图像

ale*_*m99 4 android background widget rotation imagebutton

我的主屏幕上有一个小部件,其中有几个具有默认背景图像的ImageButton.通过配置活动,我可以更改任何ImageButton上的图像.问题是,当屏幕旋转时,ImageButton上的图像会消失,然后会变回默认图像.

我不知道为什么会发生这种情况或如何解决它

Mar*_*k B 9

当旋转屏幕时,使用传递给AppWidgetManager .updateAppWidget()的最后一个RemoteViews对象重建整个appwidget .因此,每次调用updateAppWidget()时,都会传递一个RemoteViews对象,该对象具有设置在其上的所有内容,如果要完全重建它,则不仅仅需要在窗口小部件上更新一两件事.显示.

因此,在AppWidgetProvider类中,无论何时更新appwidget,都需要创建一个RemoteViews对象,使用该对象为appwidget构建所有视图设置,然后在完成后调用AppWidgetManager.updateAppWidget().

我的猜测是你做的是这样的:

  • 获取RemoteViews对象
  • 设置新按钮图像
  • 调用updateAppWidget()
  • 获取RemoteViews对象
  • 在按钮上设置待定意图
  • 调用updateAppWidget()

当你需要做这样的事情时:

  • 获取RemoteViews对象
  • 设置新按钮图像
  • 在按钮上设置待定意图
  • 调用updateAppWidget()