Я намагаюся застосувати анімацію до подання в додатку для Android після створення моєї активності. Для цього мені потрібно визначити поточний розмір перегляду, а потім встановити анімацію для масштабування від поточного розміру до нового розміру. Цю частину потрібно виконати під час виконання, оскільки перегляд масштабується до різних розмірів залежно від даних користувача. Мій макет визначений у XML.
Це здається легким завданням, і існує багато питань щодо цього, хоча жодне, що вирішило мою проблему, очевидно. Тож, можливо, я пропускаю щось очевидне. Я розумію:
ImageView myView = (ImageView) getWindow().findViewById(R.id.MyViewID);
Це працює відмінно, але при виклику getWidth()
, getHeight()
, getMeasuredWidth()
, getLayoutParams().width
і т.д., вони все повертаються 0. Я також спробував вручну виклику measure()
на представленні з подальшим викликом getMeasuredWidth()
, але це не має ніякого ефекту.
Я намагався викликати ці методи та перевіряти об'єкт у відладчику в моїй діяльності onCreate()
та в onPostCreate()
. Як я можу визначити точні розміри цього виду під час виконання?
match_parent
). У цьому випадку більш просте рішення, яке можна сміливо викликати ще до того, як перегляд буде намальований (наприклад, з методу onCreate () вашої діяльності), просто використовувати Display.getSize (); див. stackoverflow.com/a/30929599/5025060 для детальної інформації. Я знаю, що це не те, про що попросив @NikReiman, просто залишив записку тим, хто може використовувати цей простіший метод.