4 가지 추가 애니메이션

17389 단어 필기 하 다.
먼저 초기 와 종료 위 치 를 정 한 다음 에 중간 과정 은 보충 애니메이션 의 애니메이션 효과 보충 애니메이션 으로 네 가지 로 나 뉜 다. 1. AlphaAnimation 투명도 애니메이션 2, Scale Animation 확대 애니메이션 3, TranslateAnimation 이동 애니메이션 4.RotateAnimation 회전 애니메이션 ① 정적 실현: 1. res / anim 이 폴 더 에 xml 자원 파일 을 만 듭 니 다. 2. 애니메이션 효과 에 대응 하 는 노드 를 만 듭 니 다. 예 를 들 어 회전 애니메이션 노드 를 만 드 는 동시에 이 애니메이션 의 속성 (시작 위치, 끝 위치, 한 번 재생 시간, 재생 횟수, 재생 모드 등) 을 설정 합 니 다. 3. 해당 하 는 애니메이션 류 를 사용 합 니 다.Animation Utils. loadAnimation (context, 애니메이션 의 자원 파일) 4. 애니메이션 대상 을 통 해 start () 방법 5. 이 애니메이션 류 의 대상 을 컨트롤 (ImageView 뿐만 아니 라 Button 등) 에 연결 시 키 고 ② 동적 실현: 1. 해당 하 는 애니메이션 류 를 만 들 고 new 방식 을 사용 합 니 다.구조 방법 을 통 해 이 애니메이션 의 초기 위치 와 종료 위 치 를 확정 합 니 다. 2. 애니메이션 류 의 대상 을 통 해 속성 (한 번 재생 하 는 시간, 재생 횟수, 재생 모드 등) 을 설정 합 니 다. 3. start () 를 호출 합 니 다.애니메이션 시작 4. 이 애니메이션 을 컨트롤 에 연결 합 니 다. 주의: 보 간 애니메이션 은 먼저 애니메이션 을 시작 한 다음 에 바 인 딩 ③ 조합 보 간 애니메이션 을 해 야 합 니 다. 1. xml 자원 파일 을 통 해 여러 애니메이션 노드 를 노드 에 두 고 2. 애니메이션 의 노드 에서 애니메이션 의 시작 과 종료 위치 만 설정 합 니 다.반복 횟수, 반복 모드 와 재생 시간 등 속성 은 set 노드 에 설정 합 니 다. 3. Animation 류 의 대상 을 사용 하여 조합 보충 애니메이션 을 불 러 옵 니 다. 4. 그 다음 에 같은 정적 보충 애니메이션 을 조작 할 때 ④ 보충 애니메이션 응용 activity 점프 를 사용 하여 애니메이션 효 과 를 추가 합 니 다. 1. overridePendingTransition ('애니메이션 에 들 어가 기', '애니메이션 종료').2. startActivity 와 finish 라 는 두 가지 방법 아래 3. onKeyDown () 감청 핸드폰 버튼 방법 4. keycode 인 자 는 현재 누 르 고 있 는 버튼 이 무엇 인지 판단 할 수 있 습 니 다. 1. AlphaAnimation 의 상용 속성: duration 애니메이션 의 시간, 밀리초 단위 fillAfter 애니메이션 이 완 료 된 후의 상태, true 는 끝 난 상 태 를 유지 합 니 다.false 는 초기 상태 로 돌아 가기 위해 repeat Count 반복 횟수 를 입력 할 수 있 고, 숫자 를 입력 할 수도 있 으 며, infinite 는 무한 repeat Mode 중복 모드 를 표시 할 수도 있 습 니 다. restart 는 다시 시작 하 는 것 을 표시 합 니 다. reverse 는 왕복 순환 interpolator 재생 방식, 등 속, 변속 을 표시 합 니 다.
구현 방식: 코드 구현
   /**
     *         
     */
    private void startAlpha2(){
        AlphaAnimation animation = new AlphaAnimation(1,0);
        animation.setDuration(2000);
        animation.setRepeatCount(1000000);
        animation.start();
        iv6.setAnimation(animation);
    }
        startAlpha2()  

XML 구현: 1. 먼저 res 다음 에 폴 더 를 만 듭 니 다. 여기 서 anim 2 라 고 명명 합 니 다. anim 폴 더 다음 에 alpha. xml 파일 을 새로 만 듭 니 다.
<alpha
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="3000"
    android:fromAlpha="1"
    android:toAlpha="0"  //    1-->0
    android:repeatCount="10000"
    >
</alpha>

3. 그리고 Activity 에 방법 을 써 서 xml 파일 을 찾 습 니 다.
 /**
     * XML       
     * @param iv
     */
    private void startAlpha(ImageView iv) {
        AlphaAnimation animation = (AlphaAnimation) AnimationUtils.loadAnimation(this,R.anim.alpha);
        //    start         
        animation.start();
        iv.setAnimation(animation);
    }

4. 호출 시 startAlpha (imageview) 를 사용 할 수 있 습 니 다.2. Scale Animation 코드 구현
   /**
     *       
     */
    private void startScale1(ImageView iv){
        ScaleAnimation animation = new ScaleAnimation(1f, 0.2f,1f,0.2f,Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f);
        //         
        animation.setRepeatCount(1000000);
        //           
        animation.setDuration(1000);
        //           :Animation.REVERSE  ,Animation.RESTART  
        animation.setRepeatMode(Animation.REVERSE);
        animation.start();
        // iv        
        iv.setAnimation(animation);
    }

           startScale1(imageview)    

XML 구현: 1. anim 폴 더 아래 scale. xml 파일 만 들 기
<scale
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration = "2000"
    //       
    android:fromXScale="0"
    android:fromYScale="0"
    //       
    android:pivotX="50%"
    android:pivotY="50%"
    //     
    android:toXScale="100%"
    android:toYScale="100%"
    //  
    android:repeatCount="1000"
    ></scale>

2. Activity 에서 호출
   /**
     * XML    
     */
private void startScale2(){
    ScaleAnimation animation = (ScaleAnimation) AnimationUtils.loadAnimation(this,R.anim.scale);
    animation.start();
    iv8.setAnimation(animation);
}

3. TranslateAnimation 코드 구현
   /**
     *         
     */
    private void statTweenTran1(ImageView iv) {
        /*
            TranslateAnimation        
          fromXType:X         (1.      2.       3.    )
        fromXValue:X        
            。
         */
        TranslateAnimation animation = new TranslateAnimation(
                Animation.RELATIVE_TO_SELF,
                0f,
                Animation.RELATIVE_TO_SELF,
                2f,
                Animation.RELATIVE_TO_SELF,
                0f,
                Animation.RELATIVE_TO_SELF,
                4f);
        //         
        animation.setRepeatCount(1000000);
        //           
        animation.setDuration(1000);
        //           :Animation.REVERSE  ,Animation.RESTART  
        animation.setRepeatMode(Animation.REVERSE);
        animation.start();
        // iv        
        iv.setAnimation(animation);
    }

XML 구현 1. anim 에서 새 xml 파일 translate. xml
<translate
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromXDelta="0"
    android:toXDelta="200%"
    android:fromYDelta="0"
    android:toYDelta="0"
    android:duration="2000"
    android:repeatCount="infinite"
    android:repeatMode="reverse"
    />
    

2. Activity 건설 방법 호출
   /**
     *   xml
     *         
     *        :         , start;        ,   
     */
    private void startTweenTran(ImageView iv) {
//        1.    xml           
        TranslateAnimation animation = (TranslateAnimation) AnimationUtils.loadAnimation(this, R.anim.translate);
//            (         start,          )
        animation.start();
//              iv      
        iv.setAnimation(animation);

    }

4. RotateAnimation XML 구현 1. anim 에서 rotate. xml 파일 새로 만 들 기 2. Activity 에서 호출
   /**
     *          ,          
     * @param iv
     */
    private void startRotateAnim(ImageView iv) {
//                  ,         
        RotateAnimation animation = (RotateAnimation) AnimationUtils.loadAnimation(this, R.anim.rotate);
        animation.start();
        iv.setAnimation(animation);
    }

5. 다양한 애니메이션 조합 1. 새로 만 든 xml 파일 에서 set 노드 를 선택해 야 합 니 다. 다음 과 같은 네 가지 애니메이션 조합 입 니 다.
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="1000"
    android:fillAfter="true"
    android:repeatMode="restart">
    <scale
        android:duration="2000"
        android:fromXScale="0"
        android:fromYScale="0"
        android:pivotX="50%"
        android:pivotY="50%"
        android:repeatCount="1200"
        android:toXScale="100%"
        android:toYScale="100%" />
    <alpha
        android:duration="3000"
        android:fromAlpha="1"
        android:repeatCount="10000"
        android:toAlpha="0" />
    <rotate
        android:fromDegrees="0"
        android:pivotX="50%"
        android:pivotY="50%"
        android:repeatCount="1000"
        android:toDegrees="360" />
    <translate
        android:fromXDelta="0"
        android:repeatCount="1000"
        android:toXDelta="200%" />

set>

2. Activity 에서 의 호출 실현
   /**
     *   xml      
     *   +      ,   
     */
    private void startAnim(ImageView iv) {
        Animation animation = AnimationUtils.loadAnimation(this, R.anim.rotate_translate);
        animation.start();
        iv.setAnimation(animation);
    }

6. Activity 점프 애니메이션 실현 1. anim 에서 xml 파일 두 개 를 새로 만 들 고 하 나 는 in 이 고 하 나 는 out 입 니 다.여 기 는 scale 을 예 로 들 면 in.
<scale
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration = "2000"
    android:fromXScale="0"
    android:fromYScale="0"
    android:pivotX="50%"
    android:pivotY="50%"
    android:toXScale="100%"
    android:toYScale="100%"/>

out
<scale
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration = "2000"
    android:fromXScale="100%"
    android:fromYScale="100%"
    android:pivotX="50%"
    android:pivotY="50%"
    android:toXScale="0"
    android:toYScale="0"
    />

2. 여기 서 우 리 는 시스템 의 리 턴 버튼 을 사용 하여 감청 합 니 다.
/**
     *                
     *
     * @param keyCode
     * @param event
     * @return
     */
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
//                      
//                       ,            
        if (keyCode == KeyEvent.KEYCODE_BACK) {
            finish();
            overridePendingTransition(R.anim.trans_back_in, R.anim.tran_back_out);
        }
        return super.onKeyDown(keyCode, event);
    }

3. 다른 곳 에서 점프 할 때 도 추가
//                  Activity        
                overridePendingTransition(R.anim.trans_back_in,R.anim.tran_back_out);

좋은 웹페이지 즐겨찾기