AppWidgetManager widgetId ?? Höhe und Breite ??

  • 3 Antworten
  • Letztes Antwortdatum
O

otX

Neues Mitglied
1
Hallo Androiden!

Ich suche eine Möglichkeit die Höhe und die Breite eines AppWidget zu erhalten!

Code:
public class UpdateWidgetService extends Service {
	public void onStart(Intent intent, int startId) {
	    // Create some random data
	    
	    AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(this
	        .getApplicationContext());

	    int[] allWidgetIds = intent
	        .getIntArrayExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS);

            int lf = 0;
	    for (int widgetId : allWidgetIds) {

            [B][SIZE="4"]int widget_hoehe = ??????????????;
          int widget_breite = ??????????????;[/SIZE][/B]

            lf++;
	    }
	    stopSelf();

	    super.onStart(intent, startId);
	  }

würde mich freuen wenn mir dabei jemand helfen kann! Vielen Dank
 
Hi,

du hast ja am Anfang eine Widgetgröße festgelegt.
Also weißt du wie groß es ist.
Falls der user die Widget größe verändert: -> AppWidgetProvider | Android Developers (Erst ab API 16)

Sonst gibt es keine möglichkeit.

Gruß
 
  • Danke
Reaktionen: otX
Danke schön !

Code:
public class UpdateWidgetService extends Service {
	public void onStart(Intent intent, int startId) {
	    // Create some random data
	    
	    AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(this
	        .getApplicationContext());

	    int[] allWidgetIds = intent
	        .getIntArrayExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS);

            int lf = 0;
	    for (int widgetId : allWidgetIds) {

           onAppWidgetOptionsChanged(this.getApplicationContext(), appWidgetManager, widgetId, null);
	    	

            lf++;
	    }
	    stopSelf();

	    super.onStart(intent, startId);
	  }

          public void onAppWidgetOptionsChanged(Context context, AppWidgetManager appWidgetManager,
            int appWidgetId, Bundle newOptions) {
    	
    	newOptions = appWidgetManager.getAppWidgetOptions(appWidgetId);

        int minWidth = newOptions.getInt(AppWidgetManager.OPTION_APPWIDGET_MIN_WIDTH);
        int maxWidth = newOptions.getInt(AppWidgetManager.OPTION_APPWIDGET_MAX_WIDTH);
        int minHeight = newOptions.getInt(AppWidgetManager.OPTION_APPWIDGET_MIN_HEIGHT);
        int maxHeight = newOptions.getInt(AppWidgetManager.OPTION_APPWIDGET_MAX_HEIGHT);

        System.out.println("ID : " + appWidgetId + " minWidth : " + minWidth);
        System.out.println("ID : " + appWidgetId + " maxWidth : " + maxWidth);
        System.out.println("ID : " + appWidgetId + " minHeight : " + minHeight);
        System.out.println("ID : " + appWidgetId + " maxHeight : " + maxHeight);
        
    }
}

Eine Antwort viele neue fragen :scared:

Muss ich jetzt das min. Api auf 16 Setzen oder kann ich den Aufruf für ältere Versionen ausblenden? nach try/catch art oder so ?
 
Bei älteren Version wird diese Methode nie aufgerufen, da sich die widgets dort sowieso nicht in der Größe ändern können.
Also hast du dort immer die gleiche Größe. Bei neueren Versionen wird die Methode aufgerufen und sollte bei dir funktionieren.

Gesendet von meinem Nexus 10 mit der Android-Hilfe.de App
 
Zurück
Oben Unten