有一个在RemoteViews
类没有setBackground()
方法,所以我用以下解决方法:动态变化AppWidget的背景与9补丁绘制
- 创建一个
FrameLayout
我的应用程序插件与ImageView
为背景视图。 - 使用
setImageViewResource()
方法更改了ImageView
图像。
不幸的是,对于9修补程序可绘制,此方法不起作用。同样当ImageView
的android:src
属性指向9修补程序 - 它也不起作用。有没有办法用9-补丁drawable以编程方式更改AppWidget
的背景图像?提前致谢。
编辑 设置9补丁作为XML初始背景:
<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补丁。
你的意思是'它不起作用'? – 2012-02-27 10:45:43
@ReubenScratton,9贴片没有正确拉伸,它只是居中,像一个简单的PNG可绘制拉伸。 – Egor 2012-02-27 10:50:08
你确定你的9补丁是有效的吗?即在正常的过程中正确绘制。我敢肯定,我已经做到了这一点,没有问题之前... – 2012-02-27 10:52:10