내 활동이 생성 된 후 Android 앱의보기에 애니메이션을 적용하려고합니다. 이렇게하려면 뷰의 현재 크기를 확인한 다음 현재 크기에서 새 크기로 크기를 조정할 애니메이션을 설정해야합니다. 뷰가 사용자의 입력에 따라 다른 크기로 조정되므로이 부분은 런타임에 수행해야합니다. 내 레이아웃은 XML로 정의됩니다.
이것은 쉬운 작업처럼 보이며 분명히 내 문제를 해결하지 못했지만 이것에 관한 많은 질문이 있습니다. 그래서 아마도 나는 분명한 것을 놓치고 있습니다. 나는 다음과 같이 내 견해에 대한 핸들을 얻습니다.
ImageView myView = (ImageView) getWindow().findViewById(R.id.MyViewID);
이 잘 작동하지만, 호출 할 때 getWidth()
, getHeight()
, getMeasuredWidth()
, getLayoutParams().width
, 등, 그들은 모두 0을 반환은 또한 전화를 수동으로 시도 measure()
를 호출 다음에보기에 getMeasuredWidth()
,하지만 아무 효과가 없습니다.
이 메서드를 호출하고 내 활동 onCreate()
과 .NET의 디버거에서 개체를 검사 해 보았습니다 onPostCreate()
. 런타임에이 뷰의 정확한 치수를 어떻게 알 수 있습니까?
match_parent
). 이 경우보기를 그리기 전에 안전하게 호출 할 수있는 더 간단한 솔루션 (예 : Activity의 onCreate () 메서드에서)은 Display.getSize ()를 사용하는 것입니다. 자세한 내용은 stackoverflow.com/a/30929599/5025060 을 참조하십시오. 나는 이것이 @NikReiman이 요청한 것이 아니라는 것을 알고 있습니다.이 간단한 방법을 사용할 수있는 사람들에게 메모를 남깁니다.