2013-01-04 5 views
6

La classe AdSize utilizza i metodi getWidthInPixels() e getHeightInPixels() per ottenere la dimensione dell'annuncio. Sebbene, funzionano correttamente per BANNER, non funzionano SMART_BANNER. Restituiscono sempre -2.Dimensioni SMART_BANNER di Admob

Potete suggerirmi un modo per recuperare le dimensioni di AdView durante l'esecuzione?

risposta

13

Se si utilizza la raccolta di Google Play Services, è possibile utilizzare semplicemente:

int widthPixels = AdSize.SMART_BANNER.getWidthInPixels(this); 
int heightPixels = AdSize.SMART_BANNER.getHeightInPixels(this); 

Nel vecchio standalone Android SDK di AdMob, bisogna farlo nel modo hacky:

Disclaimer: questo è il modo sbagliato di creare un AdSize. NON passare questo AdSize nel costruttore AdView!

Speriamo che l'implementazione dello smart banner venga corretta nelle versioni future, quindi non è necessario eseguire questa soluzione alternativa. Ma ecco come può essere fatto:

// This testSize should not be passed to the AdView constructor. 
// Always pass AdSize.SMART_BANNER instead. 
AdSize testSize = AdSize.createAdSize(AdSize.SMART_BANNER, this); 
int widthPixels = testSize.getWidthInPixels(this); 
int heightPixels = testSize.getHeightInPixels(this); 
// testSize should not be referenced past this point.