RemoteViews
类中没有setBackground()
方法,因此我使用了以下解决方法:
- 创建一个
FrameLayout
作为小部件的背景,并将其设置为ImageView
。 - 使用
setImageViewResource()
方法更改ImageView
图像。
ImageView
的android:src
属性指向9-patch对象时,它也不起作用。是否有任何方式可以使用9-patch可绘制对象来编程更改AppWidget
的背景图片?谢谢提前。
编辑:在XML文件中将9-patch设置为初始背景:<ImageView
android:id="@+id/small_widget_layout_bg"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/background_lime" />
当我使用`android:src="@drawable/background_lime"`时,它无法正确地拉伸图像,而这段代码能正常工作。以下是从`AppWidgetProvider`的`onUpdate`方法更改背景的代码:
views.setImageViewResource(R.id.small_widget_layout_bg,
R.drawable.backgroung_lime);
这并不会将图片作为9-patch进行拉伸。