Я с настройкой динамического фона для моего виджета проблемы:Dynamic GradientDrawable в RemoteView
Мои предпочтения возвращают цвет, выбранный пользователем, и я хотел бы, чтобы применить его к виджету, но с градиентом эффект. Так вот, где я нахожусь в данный момент:
Мой widget.xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/widget_layout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/style_widget"
> ...
Мой Service.java:
public void onStart(Intent intent, int startId) {
super.onStart(intent, startId);
remoteViews = new RemoteViews(this.getPackageName(), R.layout.widget);
this.prefs = PreferenceManager.getDefaultSharedPreferences(this);
//this is where I get the color preference value, and create another with some transparency
int color1 = prefs.getInt("background_color", 00000000);
int color2 = Color.argb(22, Color.red(color1), Color.green(color1), Color.blue(color1));
int colors[] = { color1, color2 };
//Create the GradientDrawable:
GradientDrawable gradientDrawable = new GradientDrawable(
GradientDrawable.Orientation.TOP_BOTTOM, colors);
Если я:
remoteViews.setInt(R.id.widget_layout, "setBackgroundColor", color1);
Я получаю цвет фона изменился, но поскольку gradientDrawable не является int, как применить его к моему фону через remoteViews?