2010-11-29 3 views

ответ

3

использовать что-то вроде:

views.setImageViewBitmap(R.id.widgetBackground, ((BitmapDrawable)context.getResources().getDrawable(R.drawable.YOUR_BACKGROUND)).getBitmap()); 

Файл YOUR_BACKGROUND является PNG.

views Объект является экземпляром RemoteViews. Вы можете получить экземпляр с помощью:

RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget); 

И не забудьте обновить виджет после этих изменений.

AppWidgetManager mgr = AppWidgetManager.getInstance(context); 
ComponentName me = new ComponentName(context, Widget.class); 
mgr.updateAppWidget(me, views); 
+1

С каким видом вы пользуетесь этим? Я попробовал это на LinearLayout и у меня Android взломал: – NPike 2011-02-28 14:56:59

+0

Проблема загрузки widhet, если макет виджетов ListView – Choletski 2016-01-29 09:37:25

1

Вы можете установить фоновое изображение или любое другое значение с помощью setInt или других методов в RemoteViews.

remoteViews.setInt (R.id.widget_layout, "setBackgroundResource", R.drawable.myshape_red);

Приведенный выше пример - это то, что я использовал для изменения виджета на другую форму. Вам нужно передать «id», а не только ссылку на макет.

Обратите внимание, что это не работает с 2.1.

Смежные вопросы