¿Cómo obtener el tamaño del widget de la aplicación?

Tengo un widget de la aplicación de Android y me gustaría ampliarlo para apoyar varios tamaños y también re-sizable con Honeycomb.

El problema es que necesito saber cuál es el tamaño del widget, así que puedo saber cuánto contenido puedo poner en él.

¿Cómo puedo leer el tamaño del widget de la aplicación?

No pude encontrar nada.

Sé que es vieja pregunta, pero hay una respuesta más nueva a ella (que creo que no estaba disponible en el tiempo, pues es API 16 y arriba solamente):

Puedes llamar:

Bundle options = appWidgetManager.getAppWidgetOptions(appWidgetId); 

Que dará las mismas opciones que se pasan a su receptor durante

 public void onAppWidgetOptionsChanged(Context context, AppWidgetManager appWidgetManager, int appWidgetId, Bundle newOptions) 

Con estas opciones de Bundle puede consultar el tamaño utilizando las constantes:

 AppWidgetManager.OPTION_APPWIDGET_MAX_HEIGHT AppWidgetManager.OPTION_APPWIDGET_MAX_WIDTH AppWidgetManager.OPTION_APPWIDGET_MIN_HEIGHT AppWidgetManager.OPTION_APPWIDGET_MIN_WIDTH 

Recordando que a Samsung le gusta ser diferente, es probable que necesite un Handler especial para TouchWiz (código abajo copiado directamente desde mi aplicación):

 @Override public void onReceive(Context context, Intent intent) { if (intent == null || intent.getAction() == null) return; // I FUCKING HATE SAMSUNG! if (intent.getAction().contentEquals("com.sec.android.widgetapp.APPWIDGET_RESIZE") && Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) { handleTouchWiz(context, intent); } super.onReceive(context, intent); } @TargetApi(16) private void handleTouchWiz(Context context, Intent intent) { AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context); int appWidgetId = intent.getIntExtra("widgetId", 0); int widgetSpanX = intent.getIntExtra("widgetspanx", 0); int widgetSpanY = intent.getIntExtra("widgetspany", 0); if (appWidgetId > 0 && widgetSpanX > 0 && widgetSpanY > 0) { Bundle newOptions = new Bundle(); // We have to convert these numbers for future use newOptions.putInt(AppWidgetManager.OPTION_APPWIDGET_MIN_HEIGHT, widgetSpanY * 74); newOptions.putInt(AppWidgetManager.OPTION_APPWIDGET_MIN_WIDTH, widgetSpanX * 74); onAppWidgetOptionsChanged(context, appWidgetManager, appWidgetId, newOptions); } } 
  • Establecer el ancho del botón en Android
  • Cambiar el tamaño de la fuente en el objeto del botón Spinner real
  • ¿Cómo obtener el mejor tamaño de admob para la configuración actual de la pantalla?
  • Cómo obtener el tamaño de un tamaño de aplicación + de datos de la aplicación
  • Posible cambiar el tamaño de texto / color para ActionBar?
  • Cómo hacer aplicaciones Android de bajo tamaño?
  • ¿Cómo obtener el tamaño total de RAM de un dispositivo?
  • Mi tamaño de APK aumentó de 65 Kbytes a 8,8 MBytes después de agregar servicios de Google Play (para admob)
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.