2013-05-24 2 views
4

을 사용하여 RelativeLayout을 (를) 이동하려고합니다. 나도 같은 수행하기 위해 작성한 코드는 다음과 같습니다번역 애니메이션 작동 원리 : Android

translateAnimation = new TranslateAnimation(0, 0, heightOfRootView-excuseContainer.getHeight(), currentYPoint); 
translateAnimation.setRepeatMode(0); 
translateAnimation.setDuration(500); 
translateAnimation.setFillAfter(true); 
excuseContainer.startAnimation(translateAnimation); 

내가 특정 뷰 (내가보기의 x 위치를 변경할 필요가 없습니다) 그러나 애니메이션이 모든을 쳐다보고 현재의 y 위치에서 애니메이션을 시작하려고 해요 처음 y 지점에서 시간. 현재 y 위치에서 원하는 위치로이 동작을 수행하려면 어떻게해야합니까? 전체 화면의 높이를 의미 heightOfRootView 여기

excuseContainer 내가 애니메이션을 이동하려는 및 currentYPointexcuseContainer의 마지막 Y 점입니다이다.

편집 : 번역 애니메이션 자습서가 있습니다. 나는 그것을 찾았지만 찾지 못했습니다 ..

감사합니다.

+0

"첫 번째 y 점"이란 무엇을 의미합니까? 앱의 스크린 샷에 무언가를 그릴 수 있습니까? – Tushar

+0

앱을로드하는 중에 뷰가 원래 배치 된 위치를 의미합니다. –

답변

10

사용중인 TranslateAnimation 생성자의 세번째 매개 변수는 델타 값이기 때문에, 출발점과 같이 계산된다

currentYPos + startingDeltaY

당신이 참조하는 Y 값을 전달하는 것 때문에 화면상의 어떤 위치,이 델타 값은 정확하지 않습니다. 이처럼

(toYValue을 떠, fromYValue, INT의 toYType을 떠, toXValue, INT의 fromYType을 떠, fromXValue에게, INT의 toXType을 떠 INT의 fromXType)

공공 TranslateAnimation :

이 생성자를 사용해보십시오 :

new TranslateAnimation(Animation.RELATIVE_TO_SELF, 0, Animation.RELATIVE_TO_SELF, 0, Animation.ABSOLUTE, heightOfRootView-excuseContainer.getHeight(), Animation.ABSOLUTE, currentYPoint); 
+0

특정 지점에서 창 애니메이션을 시작하고 화면에서 열 수 있습니까? 예 : 버튼 아래의 지점에서 열리고 해당 버튼 아래의 창을 덮는 창이 열립니다. –