Imagen de fondo de Android Widget Cambiar

He estado luchando por los últimos dos días para cambiar el fondo de mi widget, basado en algunas declaraciones if (eliminado ahora sólo quiero cambiar el fondo del widget de la clase) aquí es mi fuente a continuación. ¿Qué pasa, sin embargo, he cambiado las imágenes antes bien como fondos, pero no puede conseguir que funcione para mi widget gracias. Este es mi intento más reciente por el camino

//Widget Provider Class public class WidgetProvider extends AppWidgetProvider { public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { final int N = appWidgetIds.length; for (int i=0; i<N; i++) { int appWidgetId = appWidgetIds[i]; Intent intent = new Intent(context, com.widget.WidgetDialog.class); PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0); RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget); views.setOnClickPendingIntent(R.id.widget, pendingIntent); appWidgetManager.updateAppWidget(appWidgetId, views); views.setImageViewBitmap(R.id.widget, ((BitmapDrawable)context.getResources().getDrawable(R.drawable.widget_background)).getBitmap()); } } } //Widget Layout XML <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <Button android:id="@+id/widget" android:background="#00000000" android:layout_width="fill_parent" android:layout_height="fill_parent"> </Button> </LinearLayout> 

Aquí está un truco que puede hacer: use ImageView para su fondo, no la propiedad "background" de usted. Vea y establezca scaleType en "fitXY". Me gusta esto:

 <?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <ImageView android:id="@+id/backgroundImage" android:layout_width="match_parent" android:layout_height="match_parent" android:src="@drawable/some_background" android:scaleType="fitXY"/> <RelativeLayout android:gravity="center" android:layout_width="match_parent" android:layout_height="match_parent"> <Button android:text="some button" android:layout_width="wrap_content" android:layout_height="wrap_content"/> <!-- all your views --> </RelativeLayout> </FrameLayout> 

Ahora puede cambiar su fuente ImageView durante el tiempo de ejecución:

 //updating current widget AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context); RemoteViews views = new RemoteViews(getPackageName(), R.layout.widget_layout); views.setImageViewResource(R.id.backgroundImage, R.drawable.some_other_background); appWidgetManager.updateAppWidget(widgetId, views); 

Intente usar setImageViewResource()

 remoteViews.setImageViewResource(R.id.widget, R.drawable.widget_background); 

Gracias

Alguien tiene otras ideas? Realmente me gustaría conseguir esto resuelto

Editar: terminó la configuración de diferentes diseños en la actualidad tienen 10 diseños diferentes para 2 widgets diferentes ineficaces, pero trabajando más de un hack alrededor de verdad

  • Android: intento de abrir el menú contextual del widget
  • No se puede iniciar la aplicación para la intención de difusión
  • Widget de aplicación setImageViewUri no actualiza la imagen
  • Creación de una vista previa de un widget dentro de la actividad de configuración
  • Android: cómo evitar que varias instancias de una actividad se inicien desde un widget?
  • mensaje del widget android para desbloquear
  • ¿Cómo editar / cambiar la vista desde el diseño en RemoteView o crear RemoteView desde la vista?
  • Iniciar VPNService desde dentro de widget android
  • ¿Cómo actualizar los widgets de un servicio?
  • ¿Cambia el color de fondo en android destruir el aspecto del widget?
  • Widget de la aplicación: ¿puedes especificar un tamaño mínimo y un tamaño predeterminado?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.