So ändern Sie das widget-layout-hintergrund programmgesteuert in Android

Nehmen Sie dieses widget-layout-Beispiel (Teil meiner gesamten widget-layout)

<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"
>

Ich möchte in der Lage sein, um den hintergrund zu ändern drawable verwendet, basierend auf einer Benutzer-Auswahl. Zum Beispiel mit remote-Ansichten kann ich update die Farbe der textview von etwas wie dies:

remoteView.setTextColor(R.id.text_view1, Color.WHITE);

Aber ich habe es schwierig gefunden, auf die gleiche für den hintergrund meiner linearer Anordnung. Ich habe versucht dies:

remoteView.setBitmap(R.id.widget_main, "setBackgroundDrawable", ((BitmapDrawable) context.getResources().getDrawable(R.drawable.widget_background_dark_4x2)).getBitmap());

Aber ich bekomme die folgende Fehlermeldung:

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 >>
Habe auch dies versucht:

Bitmap bitmap = ((BitmapDrawable)context.getResources().getDrawable(R.drawable.widget_background_light_4x2)).getBitmap();
remoteView.setBitmap(R.id.widget_main, "setBackgroundDrawable",bitmap );

Aber leider die folgende Fehlermeldung erhalten:

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)

InformationsquelleAutor Pelly | 2011-06-01

Schreibe einen Kommentar