J'essaie d'appliquer une animation à une vue dans mon application Android après la création de mon activité. Pour ce faire, je dois déterminer la taille actuelle de la vue, puis configurer une animation à l'échelle de la taille actuelle à la nouvelle taille. Cette partie doit être effectuée au moment de l'exécution, car la vue est mise à l'échelle à différentes tailles en fonction de l'entrée de l'utilisateur. Ma mise en page est définie en XML.
Cela semble être une tâche facile, et il y a beaucoup de questions SO à ce sujet, mais aucune n'a résolu mon problème, évidemment. Alors peut-être que je manque quelque chose d'évident. Je saisis mon point de vue en:
ImageView myView = (ImageView) getWindow().findViewById(R.id.MyViewID);
Cela fonctionne très bien, mais lors de l' appel getWidth(), getHeight(), getMeasuredWidth(), getLayoutParams().width, etc., ils ont tous le retour 0. J'ai également essayé d' appeler manuellement measure()sur la vue suivie d'un appel à getMeasuredWidth(), mais cela n'a aucun effet.
J'ai essayé d'appeler ces méthodes et d'inspecter l'objet dans le débogueur dans mon activité onCreate()et dans onPostCreate(). Comment puis-je déterminer les dimensions exactes de cette vue au moment de l'exécution?
match_parent). Dans ce cas, une solution plus simple qui peut être appelée en toute sécurité avant même que la vue ne soit dessinée (par exemple, à partir de la méthode onCreate () de votre activité) consiste simplement à utiliser Display.getSize (); voir stackoverflow.com/a/30929599/5025060 pour plus de détails. Je sais que ce n'est pas ce que @NikReiman a demandé, laissant simplement une note à ceux qui pourraient utiliser cette méthode plus simple.