2011-03-31 6 views
1
나는 ApiDemo를 예를 다음에서 내보기에서 애니메이션을 설정하고

을 생성 (layout_grid_fade.html 참조)안드로이드 : 뷰에 애니메이션을 적용하면 RuntimeException을

<?xml version="1.0" encoding="utf-8"?> 
<gridLayoutAnimation xmlns:android="http://schemas.android.com/apk/res/android" 
     android:rowDelay="50%" 
     android:directionPriority="column" 
     android:animation="@anim/fade" /> 

을 아래에 내 코드는

mView.startAnimation(AnimationUtils.loadAnimation(ViewModel.this, R.anim.layout_grid_fade)); 
mView.setImage(modelImages.get(0).image); 

하지만 예외가 발생하는 이유는 무엇입니까? 아래에있는 내 로그 추적

FATAL EXCEPTION: main 
java.lang.RuntimeException: Unknown animation name: gridLayoutAnimation 
    at android.view.animation.AnimationUtils.createAnimationFromXml(AnimationUtils.java:116) 
    at android.view.animation.AnimationUtils.createAnimationFromXml(AnimationUtils.java:83) 
    at android.view.animation.AnimationUtils.loadAnimation(AnimationUtils.java:64) 
    at nick.kimK.ViewModel$1$1.run(ViewModel.java:72) 
    at android.os.Handler.handleCallback(Handler.java:587) 
    at android.os.Handler.dispatchMessage(Handler.java:92) 
    at android.os.Looper.loop(Looper.java:123) 
    at android.app.ActivityThread.main(ActivityThread.java:4627) 
    at java.lang.reflect.Method.invokeNative(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:521) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:871) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:629) 
    at dalvik.system.NativeStart.main(Native Method) 
+0

.xml 파일을 게시 할 수 있습니까? –

+0

그것의 링크에서 내가 위에 제공했습니다 – ingsaurabh

+0

좋아, 이름이 올바른지 않습니다. 어쩌면 파일에 제어 문자가 있거나 UTF-8 일 필요가 있을까요? –

답변

6

UPD입니다 : 하지 고해상도의 모든 XML/ANIM 폴더는 애니메이션 선언합니다. 그들 중 일부는 Animators 또는 LayoutAnimationControllers을 선언 할 수 있습니다. 애니메이션이 아니기 때문에 loadAnimation() 호출을로드 할 수 없습니다.

-

gridLayoutAnimation 태그가없는 특정 기본 애니메이션 형식 오히려 GridLayoutAnimationController 설명처럼 보이는

. 따라서 AnimationUtils.loadAnimation()을 사용하여 직접로드 할 수 있지만 layoutAnimation 속성을 통해 ViewGroup (레이아웃)으로 설정해야합니다. 당신은 여전히 ​​코드에서 AnimationController 인스턴스를 취득하려면, AnimationUtils.loadLayoutAnimation() 방법을 사용

LayoutAnimationController layoutAnimation = AnimationUtils.loadLayoutAnimation(ViewModel.this, R.anim.layout_grid_fade) 

을하지만 당신은 거의 당신이 당신의 예에서하고있는 방식으로 layoutAnimation을 사용할 수 없습니다. this article은 레이아웃 애니메이션을 이해하는 데 매우 유용합니다.

+0

실제로이 URL에서 http://developer.android.com/resources/samples/ApiDemos/res/anim/index.html 애니메이션 중 일부는 작동하지 않습니다 – ingsaurabh

+0

일부 파일은 애니메이션을 선언하지 않고 LayoutAnimationControllers (http://developer.android.com/intl/zh-TW/reference/android/view/animation/LayoutAnimationController.html) 또는 Animators (http : // developer .android.com/intl/zh-TW/reference/android/animation/Animator.html). –

+0

은 애니메이션 집합이 잘못된 요소 인 경우 자식 요소가있는 뷰에만 사용할 수 있음을 의미합니다. – ingsaurabh

관련 문제