출처 : http://www.programkr.com/blog/MYDNzADMwYTy.html


애니메이션 효과 프로그래밍 기초--AnimationAndroid    
  
애니메이션 스타일    
  
Android의 animation by 네 종류의 구성    
  
XML 중    
alpha    
그라디언트 투명도 애니메이션 효과    
scale    
그라디언트 사이즈 신축 애니메이션 효과    
translate    
화면 전환 애니메이션 효과 자리 이동    
rotate    
화면 회전 애니메이션 효과 이동    
  
  
JavaCode중    
AlphaAnimation    
그라디언트 투명도 애니메이션 효과    
ScaleAnimation    
그라디언트 사이즈 신축 애니메이션 효과    
TranslateAnimation    
화면 전환 애니메이션 효과 자리 이동    
RotateAnimation    
화면 회전 애니메이션 효과 이동    
  
Android애니메이션 모드    
  
Animation두 가지 주요 애니메이션 모드:     
  
한 가지가 tweened (그라디언트 애니메이션 animation)    
XML중    
JavaCode    
alpha    
AlphaAnimation    
scale    
ScaleAnimation    
  
  
한 가지가 frame by frame (화면 전환 애니메이션)    
XML중    
JavaCode    
translate    
TranslateAnimation    
rotate    
RotateAnimation    
  
  
  
어떻게 XML 파일 중 정의 애니메이션    
  
① 열기 Eclipse, 새 Android 공사    
② 지금 res 디렉터리에 새 anim 폴더    
③ 지금 anim 디렉터리에 새 한 myanim.xml (파일 이름 소문자 주의)    
④ 가입 XML 애니메이션 코드

1 <?xml version="1.0" encoding="utf-8"?>    
2  <set xmlns:android="http://schemas.android.com/apk/res/android">    
3    <alpha/>    
4    <scale/>    
5    <translate/>    
6    <rotate/>    
7  </set>    

Android 애니메이션 해석--XML

<alpha>

 1 <?xml version="1.0" encoding="utf-8"?>    
 2  <set xmlns:android="http://schemas.android.com/apk/res/android" >    
 3  <alpha    
 4  android:fromAlpha="0.1"    
 5  android:toAlpha="1.0"    
 6  android:duration="3000"    
 7    
 8  />    
 9  <!-- 투명도 제어 애니메이션 효과 알파    
10          부동 소수점 형식 값:     
11              fromAlpha 속성 애니메이션 시작 때 투명도 위해    
12              toAlpha 속성 을 애니메이션 끝날 때 투명도    
13              설명:    
14                  0.0 대해 완전히 투명    
15                  1.0 대해 완전히 불투명    
16              이상 값 찾다 0.0-1.0 사이의 float 데이터 형식 숫자    
17             
18          긴 정수 값:     
19              duration 속성 을 애니메이션 지속 시간    
20              설명:        
21                  시간 은 밀리초 단위로    
22 -->    
23  </set>


<scale> 

 1 <?xml version="1.0" encoding="utf-8"?>    
 2  <set xmlns:android="http://schemas.android.com/apk/res/android">    
 3     <scale     
 4            android:interpolator=    
 5                       "@android:anim/accelerate_decelerate_interpolator"    
 6            android:fromXScale="0.0"    
 7            android:toXScale="1.4"    
 8            android:fromYScale="0.0"    
 9            android:toYScale="1.4"    
10            android:pivotX="50%"    
11            android:pivotY="50%"    
12            android:fillAfter="false"    
13            android:startOffset="700"    
14            android:duration="700" />    
15  </set>    
16  <!-- 사이즈 신축 애니메이션 효과 scale    
17         속성: interpolator 지정하지 애니메이션 삽입 그릇    
18          내가 실험 과정에서 사용 android.res.anim 중 자원 때 발견    
19          세 가지 애니메이션 삽입 그릇:    
20              accelerate_decelerate_interpolator 가속 - 감속 애니메이션 삽입 그릇    
21              accelerate_interpolator 가속 - 애니메이션 삽입 그릇    
22              decelerate_interpolator 감속 - 애니메이션 삽입 그릇    
23          다른 은 특정한 애니메이션 효과    
24        부동 소수점 형식 값:     
25              
26              fromXScale 속성 애니메이션 시작 때 X 좌표 위의 신축 사이즈 위해       
27              toXScale 속성 을 애니메이션 끝날 때 X 좌표 위의 신축 사이즈        
28             
29              fromYScale 속성 애니메이션 시작 때 Y 좌표 위의 신축 사이즈 위해       
30              toYScale 속성 을 애니메이션 끝날 때 Y 좌표 위의 신축 사이즈      
31              startOffset 속성 을 지난번부터 애니메이션 계속 몇 시간 시작한 다음 애니메이션 실행    
32             
33              설명:    
34                   이상 네 가지 속성 값       
35         
36                      0.0 표시 수축 없다    
37                      1.0 것은 정상적인 신축 없다.        
38                      값 < 1.0 표시 수축     
39                      가치가 크다 1.0 표시 확대    
40             
41              pivotX 속성 을 애니메이션 건가요, 물건 X 좌표 시작 위치    
42              pivotY 속성 을 애니메이션 건가요, 물건의 Y 좌표 시작 위치    
43             
44              설명:    
45                      두 개 이상의 속성 값 이 0%-100% 중 순위    
46                      50% 물건 X 또는 Y축 좌표 에서 중점 위치 위해    
47             
48          긴 정수 값:     
49              duration 속성 을 애니메이션 지속 시간    
50              설명: 시간을 밀리초 단위로 위해    
51    
52          불 형 값:    
53              fillAfter 속성 이 설정을 위해 true 이 애니메이션 전환 애니메이션 끝나면 여기서 다른 응용    
54 -->

<translate>

 1 <?xml version="1.0" encoding="utf-8"?>    
 2  <set xmlns:android="http://schemas.android.com/apk/res/android">    
 3  <translate    
 4  android:fromXDelta="30"    
 5  android:toXDelta="-80"    
 6  android:fromYDelta="30"    
 7  android:toYDelta="300"    
 8  android:duration="2000"    
 9  />    
10  <!-- translate 위치 전송 애니메이션 효과    
11          정수 값:    
12              fromXDelta 속성 애니메이션 시작 때 X 좌표 위의 위치 위해       
13              toXDelta 속성 을 애니메이션 끝날 때 X 좌표 위의 위치    
14              fromYDelta 속성 애니메이션 시작 때 Y 좌표 위의 위치 위해    
15              toYDelta 속성 을 애니메이션 끝날 때 Y 좌표 위의 위치    
16              주의:    
17                       지정되지 fromXType toXType fromYType toYType 때,     
18                       기본 은 자신을 위해 상대 참조 물건                
19          긴 정수 값:     
20              duration 속성 을 애니메이션 지속 시간    
21              설명: 시간을 밀리초 단위로 위해    
22 -->    
23  </set>

<rotate>

 1 <?xml version="1.0" encoding="utf-8"?>    
 2  <set xmlns:android="http://schemas.android.com/apk/res/android">    
 3  <rotate    
 4          android:interpolator="@android:anim/accelerate_decelerate_interpolator"   
 5          android:fromDegrees="0"    
 6          android:toDegrees="+350"            
 7          android:pivotX="50%"    
 8          android:pivotY="50%"        
 9          android:duration="3000" />     
10  <!-- rotate 회전 애니메이션 효과    
11         속성: interpolator 지정하지 애니메이션 삽입 그릇    
12               내가 실험 과정에서 사용 android.res.anim 중 자원 때 발견    
13               세 가지 애니메이션 삽입 그릇:    
14                  accelerate_decelerate_interpolator 가속 - 감속 애니메이션 삽입 그릇    
15                  accelerate_interpolator 가속 - 애니메이션 삽입 그릇    
16                  decelerate_interpolator 감속 - 애니메이션 삽입 그릇    
17               다른 은 특정한 애니메이션 효과    
18                                
19         부동 소수점 숫자 형식 값:    
20              fromDegrees 속성 애니메이션 시작 때 개체 각도에서 위해       
21              toDegrees 속성 을 애니메이션 끝날 때 개체 회전 각도를 크다 360 도 할 수 있다      
22             
23              설명:    
24                       이 각도에서 위해 음수 — — 기 반시계 방향으로 회전    
25                       이 각도에서 위해 플러스 — — 표시 시계 방향으로 회전                 
26                       (부 from— — to 플러스: 시계 방향으로 회전)      
27                       (부 from— — to 음수: 반시계방향으로)    
28                       (양수 from— — to 플러스: 시계 방향으로 회전)    
29                       (양수 from— — to 음수: 반시계방향으로)          
30    
31              pivotX 속성 을 애니메이션 건가요, 물건 X 좌표 시작 위치    
32              pivotY 속성 을 애니메이션 건가요, 물건의 Y 좌표 시작 위치    
33                     
34              설명: 이상 두 속성 값 이 0%-100% 중 순위    
35                           50% 물건 X 또는 Y축 좌표 에서 중점 위치 위해    
36    
37          긴 정수 값:     
38              duration 속성 을 애니메이션 지속 시간    
39              설명: 시간을 밀리초 단위로 위해    
40 -->    
41  </set>


XML 중 애니메이션 효과 어떻게 사용

1 public static Animation loadAnimation (Context context, int id)    
2  //첫 번째 인자 Context 프로그램 컨텍스트 위해       
3  //두 번째 인자 id 위해 애니메이션 XML 파일 참조    
4  //예:     
5 myAnimation= AnimationUtils.loadAnimation(this,R.anim.my_action);    
6  //사용 AnimationUtils 같은 정적 방법 loadAnimation () 와 XML 불러오기 중 애니메이션 XML 파일

어떻게 중에 자바 코드 정의 애니메이션

 1 //코드 정의 애니메이션 대상 은 중 인스턴스    
 2 private Animation myAnimation_Alpha;    
 3  private Animation myAnimation_Scale;    
 4  private Animation myAnimation_Translate;    
 5  private Animation myAnimation_Rotate;    
 6         
 7      //각자의 구조 방법에 근거해서 하나의 인스턴스를 대상 초기화할 수 없습니다.    
 8 myAnimation_Alpha=new AlphaAnimation(0.1f, 1.0f);    
 9    
10  myAnimation_Scale =new ScaleAnimation(0.0f, 1.4f, 0.0f, 1.4f,    
11               Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);   
12    
13  myAnimation_Translate=new TranslateAnimation(30.0f, -80.0f, 30.0f, 300.0f);    
14    
15  myAnimation_Rotate=new RotateAnimation(0.0f, +350.0f,    
16                 Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF, 0.5f); 

Android 애니메이션 해석--JavaCode

AlphaAnimation    
  
① AlphaAnimation 클래스 대상 정의   

1 private AlphaAnimation myAnimation_Alpha;


② AlphaAnimation 클래스 대상 구조   

1 AlphaAnimation(float fromAlpha, float toAlpha)    
2  //첫 번째 매개 변수 fromAlpha 위해 애니메이션 시작 때 투명도    
3  //두 번째 매개 변수 toAlpha 위해 애니메이션 끝날 때 투명도    
4 myAnimation_Alpha=new AlphaAnimation(0.1f, 1.0f);    
5  //설명:    
6  //                0.0 대해 완전히 투명    
7  //                1.0 대해 완전히 불투명

③ 설정 애니메이션 지속 시간

1 myAnimation_Alpha.setDuration(5000);    
2  //설정 시간 지속 시간 을 5천 초 


ScaleAnimation

① ScaleAnimation 클래스 대상 정의

1 private AlphaAnimation myAnimation_Alpha;

② ScaleAnimation 클래스 대상 구조

 1 ScaleAnimation(float fromX, float toX, float fromY, float toY,    
 2             int pivotXType, float pivotXValue, int pivotYType, float pivotYValue)   
 3  //첫 번째 매개 변수 fromX 애니메이션 시작 때 X 좌표 위의 신축 사이즈 위해       
 4  //두 번째 매개 변수 toX 위해 애니메이션 끝날 때 X 좌표 위의 신축 사이즈        
 5  //세 번째 매개 변수 fromY 애니메이션 시작 때 Y 좌표 위의 신축 사이즈 위해       
 6  //네 번째 매개 변수 toY 위해 애니메이션 끝날 때 Y 좌표 위의 신축 사이즈     
 7      
 8  //다섯 개의 인자를 pivotXType 위해 애니메이션 X 축 건가요, 물건 위치 형식     
 9  //여섯 개의 인자를 pivotXValue 위해 애니메이션 건가요, 물건 X 좌표 시작 위치    
10  //일곱 개의 인자를 pivotXType 위해 애니메이션 지금 Y축 건가요, 물건 위치 형식      
11  //여덟 개의 인자를 pivotYValue 위해 애니메이션 건가요, 물건의 Y 좌표 시작 위치    
12 myAnimation_Scale =new ScaleAnimation(0.0f, 1.4f, 0.0f, 1.4f,    
13               Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);   

③ 설정 애니메이션 지속 시간

1 myAnimation_Scale.setDuration(700);    
2  //설정 시간 시간 (밀리초 위해 700


TranslateAnimation

① TranslateAnimation 클래스 대상 정의

1 private AlphaAnimation myAnimation_Alpha;

② TranslateAnimation 클래스 대상 구조

1 TranslateAnimation(float fromXDelta, float toXDelta,    
2                         float fromYDelta, float toYDelta)    
3  //첫 번째 매개 변수 fromXDelta 애니메이션 시작 때 X 좌표 위로 이동 위치 위해       
4  //두 번째 매개 변수 toXDelta 위해 애니메이션 끝날 때 X 좌표 위로 이동 위치         
5  //세 번째 매개 변수 fromYDelta 애니메이션 시작 때 Y 좌표 위로 이동 위치 위해        
6  //네 번째 매개 변수 toYDelta 위해 애니메이션 끝날 때 Y 좌표 위로 이동 위치

③ 설정 애니메이션 지속 시간

1 myAnimation_Translate.setDuration(2000);    
2  //설정 시간 지속 시간 은 2000년 초


RotateAnimation

① RotateAnimation 클래스 대상 정의

1 private AlphaAnimation myAnimation_Alpha;

② RotateAnimation 클래스 대상 구조

 1 RotateAnimation(float fromDegrees, float toDegrees,    
 2              int pivotXType, float pivotXValue, int pivotYType, float pivotYValue)   
 3  //첫 번째 매개 변수 fromDegrees 애니메이션 시작 때 회전 각도 위해       
 4  //두 번째 매개 변수 toDegrees 위해 애니메이션 회전 각도 까지      
 5  //세 번째 매개 변수 pivotXType 위해 애니메이션 X 축 건가요, 물건 위치 형식     
 6  //네 번째 매개 변수 pivotXValue 위해 애니메이션 건가요, 물건 X 좌표 시작 위치    
 7  //다섯 개의 인자를 pivotXType 위해 애니메이션 지금 Y축 건가요, 물건 위치 형식      
 8  //여섯 개의 인자를 pivotYValue 위해 애니메이션 건가요, 물건의 Y 좌표 시작 위치    
 9 myAnimation_Rotate=new RotateAnimation(0.0f, +350.0f,    
10                 Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF, 0.5f);   

③ 설정 애니메이션 지속 시간

1 myAnimation_Rotate.setDuration(3000);    
2  //설정 시간 지속 시간 3천 초


자바 코드 중 애니메이션 효과 어떻게 사용    
  
에서 View 부 클래스 상속 온 사용 방법 startAnimation () 와 위해 View 또는 하위 클래스 View, 한 애니메이션 효과 추가   
  
  애니메이션 효과 순서

 1 android:animationOrder="random"  //임의
 2 
 3 
 4 android:animationOrder="reverse"//부정
 5 
 6 
 7 
 8 
 9 gridLayoutAnimation
10 
11 
12 android:directionPriority="row"
13 
14 android:directionPriority="column"
15 
16 android:direction="right_to_left|bottom_to_top"


'Android > General' 카테고리의 다른 글

화면 이동 애니메이션 기본  (0) 2017.02.17
안드로이드에서 루팅없이 DB 파일 추출하기  (0) 2016.12.15
이니 페이 코드 표  (0) 2015.03.04
Google Analytics for Android 활용  (1) 2015.03.02
Android TAB Host  (0) 2015.03.02

+ Recent posts