Android의 애니메이션 프레임 워크를 사용하여 ImageView를 다이아몬드 패턴으로 이동하려고합니다. 여기 내 animation.xml입니다 :Android 애니메이션 XML 문제
<set xmlns:android="http://schemas.android.com/apk/res/android" android:shareInterpolator="true">
<translate
android:fromXDelta="40%p" android:toXDelta="90%p"
android:fromYDelta="10%p" android:toYDelta="40%p"
android:duration="500" android:startOffset="0"/>
<translate
android:fromXDelta="90%p" android:toXDelta="40%p"
android:fromYDelta="40%p" android:toYDelta="90%p"
android:duration="500" android:startOffset="500"/>
<translate
android:fromXDelta="40%p" android:toXDelta="10%p"
android:fromYDelta="90%p" android:toYDelta="40%p"
android:duration="500" android:startOffset="1000"/>
<translate
android:fromXDelta="10%p" android:toXDelta="40%p"
android:fromYDelta="40%p" android:toYDelta="10%p"
android:duration="500" android:startOffset="1500"/>
</set>
내 레이아웃 :
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent">
<ImageView
android:id="@+id/img"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/icon"/>
</FrameLayout>
그리고 내 ONSTART :
protected void onStart() {
super.onStart();
ImageView img = (ImageView)findViewById(R.id.img);
Animation a = AnimationUtils.loadAnimation(this, R.anim.diamond);
img.startAnimation(a);
}
나는 내가 보는 모든 후 2 초 빈 화면 내 응용 프로그램을 시작할 때 내 이미지가 화면의 왼쪽 상단 모서리에 나타납니다. 번역 애니메이션 중 하나를 제외하고 모두 제거하면 이미지가 대각선으로 이동하는 것을 볼 수 있습니다.
XML을 사용하여 Java가 아닌 애니메이션을 정의하는 것을 선호합니다.
누구나 전체 애니메이션을 볼 수있는 방법에 대한 통찰력이 있습니까?
-Dan
"% p"를 (를) 사용하는 것과 관련이있는 것으로 보입니다. "% p"를 "%"로 변경하면 전체 애니메이션이 작동하지만 화면의 훨씬 작은 부분에만 국한됩니다. 문서 "%"는 객체와의 관계에 있으며 "% p"는 객체의 부모와 관련이 있습니다. 실제로는 원하는 것입니다. 그래서 왜 작은 상자에 애니메이션을 수행하는지 설명합니다. – Dan
더 명확히하기 위해 애니메이션을 사용하는 ImageView의 부모와 관련하여 XML을 사용하여 애니메이션을 정의하고 싶습니다. 프레임 워크가 손상되었다는 답변을 수락하지 않으며 Java에서 애니메이션을 정의해야하는 대답도 수락하지 않습니다. – Dan