我正在尝试在Android应用程序中创建视图后对其应用动画。为此,我需要确定当前视图的大小,然后设置一个动画来从当前大小缩放到新的大小。由于视图根据用户输入缩放到不同的大小,因此必须在运行时完成此操作。我的布局是在XML中定义的。
这似乎是一个简单的任务,并且有许多SO问题涉及此问题,但没有解决我的问题,显然。所以我可能漏掉了一些很明显的东西。我通过以下方式获取我的视图句柄:
ImageView myView = (ImageView) getWindow().findViewById(R.id.MyViewID);
这个方法可以正常工作,但是调用getWidth()
、getHeight()
、getMeasuredWidth()
、getLayoutParams().width
等方法时,它们都返回0。我也尝试了在视图上手动调用measure()
,然后调用getMeasuredWidth()
,但没有效果。我已经尝试在活动的
onCreate()
和onPostCreate()
中调用这些方法,并在调试器中检查对象。如何在运行时确定此视图的确切尺寸?
match_parent
)。在这种情况下,一个更简单的解决方案甚至可以在View被绘制之前安全地调用(例如,在Activity的onCreate()方法中),只需使用Display.getSize()即可;有关详细信息,请参见https://dev59.com/tYzda4cB1Zd3GeqPiiM1#30929599。我知道这不是@NikReiman所要求的,但我留下一条注释给那些可能能够使用这种更简单方法的人。 - CODE-REaD