2017-02-23 4 views
1

Je souhaite obtenir la hauteur exacte du widget en pixels dans la classe AppWidgetProvider. Après observation, je peux voir que 1 hauteur de bloc de widget est différente sur 2 appareils, bien qu'ils soient tous les deux xxxhdpi. Donc, je veux obtenir la hauteur en pixels pour faire les bons calculs. Je ne veux pas dire minHeight, qui est équivalent à 40dp en pixels dans mon cas.Android: Comment obtenir la hauteur du widget en pixels?

Répondre

0

À mon avis, view.getHeight pixels renvoie value.To font bons calculs, dp plutôt px est utile

+0

C'est le problème. Je n'ai pas accès à la vue –

+0

Vous devez décrire votre problème clairement. – cole

+0

Avez-vous travaillé sur des widgets? C'est un système entier différent, puis des activités et des fragments –

-1

Chaque vue dans Android (widgets sont vues aussi bien) a deux méthodes publiques: getWidth() et getHeight() cela retournera leur taille réelle à l'écran. Plus de détails peuvent être trouvés ici sous Taille, rembourrage et marges.View API Reference

Edit: Basé sur ceci: https://stackoverflow.com/posts/42419929/edit vous définissez la mise en page en utilisant:

RemoteViews views = new RemoteViews(context.getPackageName(), 
R.layout.example_appwidget); 
appWidgetManager.updateAppWidget(mAppWidgetId, views); 

De la documentation RemoteViews, https://developer.android.com/reference/android/widget/RemoteViews.html vous pouvez obtenir l'ID de la mise en page de la racine par views.getLayoutId() Il me semble que vous devrait être capable d'utiliser cet ID pour trouver la mise en page, puis continuer à utiliser getHeight.

+0

Ce n'est pas View. AppWidgetProvider extends BroadCastReceiver –

+0

Je n'ai pas beaucoup fait avec les widgets mais ils ont une disposition donc il y a une vue quelque part. Il doit y avoir un moyen d'accéder à la mise en page correcte? – drawinfinity

+0

J'ai remarqué dans https://developer.android.com/guide/topics/appwidgets/index.html#AppWidgetProvider que vous utilisez RemoteViews pour gonfler la mise en page. Vous pouvez obtenir la mise en page racine à partir de là, il semble donc que vous pourriez juste obtenir la mise en page racine, puis utiliser getHeight? – drawinfinity