首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Android中以编程方式更改小部件布局背景

如何在Android中以编程方式更改小部件布局背景
EN

Stack Overflow用户
提问于 2011-06-01 20:50:34
回答 2查看 14.1K关注 0票数 14

以这个小部件布局为例(我的整个小部件布局的一部分)

代码语言:javascript
复制
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/widget_background_dark_4x2"
android:orientation="horizontal"
android:id="@+id/widget_main"
>

我希望能够改变背景绘图使用的基础上用户的选择。例如,使用远程视图,我可以通过执行以下操作来更新文本视图的颜色:

代码语言:javascript
复制
remoteView.setTextColor(R.id.text_view1, Color.WHITE);

然而,我发现很难对我的线性布局的背景进行相同的处理。我确实试过这个:

代码语言:javascript
复制
remoteView.setBitmap(R.id.widget_main, "setBackgroundDrawable", ((BitmapDrawable) context.getResources().getDrawable(R.drawable.widget_background_dark_4x2)).getBitmap());

但我得到以下错误:

代码语言:javascript
复制
06-01 22:46:36.305: WARN/AppWidgetHostView(244): android.widget.RemoteViews$ActionException: view: android.widget.LinearLayout doesn't have method: setBackgroundDrawable(android.graphics.Bitmap)

<< EDIT >>也尝试过这样做:

代码语言:javascript
复制
Bitmap bitmap = ((BitmapDrawable)context.getResources().getDrawable(R.drawable.widget_background_light_4x2)).getBitmap();
remoteView.setBitmap(R.id.widget_main, "setBackgroundDrawable",bitmap );

但不幸的是得到以下错误:

06-01 23:11:26.039: WARN/AppWidgetHostView(244): updateAppWidget couldn't find any view, using error view 06-01 23:11:26.039: WARN/AppWidgetHostView(244): android.widget.RemoteViews$ActionException: view: android.widget.LinearLayout doesn't have method: setBackgroundDrawable(android.graphics.Bitmap)

EN

Stack Overflow用户

发布于 2013-02-03 10:50:30

你有没有尝试:

代码语言:javascript
复制
remoteView.setInt(R.id.widget_main, "setBackgroundResource", R.drawable.widget_background_dark_4x2);
票数 42
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6201410

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档