Изменение фона виджета во время выполнения - PullRequest
0 голосов
/ 29 ноября 2010

Я занимаюсь разработкой простого виджета и хотел бы изменить фон во время выполнения из файла png (или аналогичного).Можно ли это сделать и если да, то как?Может кто-нибудь привести какой-нибудь простой пример?

Спасибо

Ответы [ 3 ]

4 голосов
/ 02 декабря 2010

Используйте что-то вроде:

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 голос
/ 23 января 2012

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

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

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

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

0 голосов
/ 02 декабря 2010
...