Android 보 간 애니메이션 기본 사용(위치 이동,크기 조정,회전,투명)

본 고 는 안 드 로 이 드 보 간 애니메이션 의 기본 사용(변위,확대,회전,투명)을 다 루 었 다.여러분 께 참고 하도록 공유 하 겠 습 니 다.구체 적 으로 는 다음 과 같 습 니 다.
추가 애니메이션
원래 형태 가 새로운 형태 로 변 할 때 변형 과정 을 과도 하기 위해 생 성 된 애니메이션 을 보 간 애니메이션 이 라 고 한다.
변위,회전,크기 조정,투명
위치 이동:
매개 변수 10 은 X 의 출발점 좌 표를 말 하지만 화면 x 좌표 가 10 인 위 치 를 말 하 는 것 이 아니 라 imageview 의 진실 X+10 을 말한다.
매개 변수 150 은 X 의 종점 좌 표를 말 하 는데 그 값 은 imageview 의 실제 X+150 입 니 다.
//변위 애니메이션 대상 으로 만 들 고 애니메이션 의 초기 위치 와 끝 위 치 를 설정 합 니 다.TranslateAnimation ta = new TranslateAnimation(10, 150, 20, 140);1.  x 좌표 의 출발점 위치 가 자신 에 비해 0.5f 를 전달 하면 출발점 좌 표 는 진실 X+0.5*iv 너비 이다.
2.  x 좌표 의 종점 위치 가 2 에 들 어가 면 종점 좌 표 는 실제 X+2*iv 의 너비 입 니 다.
3.  y 좌표 의 출발점 위치 가 0.5f 에 들 어가 면 출발점 좌 표 는 진실 Y+0.5*iv 높이 입 니 다.
4.  y 좌표 의 종점 위치 가 2 에 들 어가 면 종점 좌 표 는 진실 Y+2*iv 높이 입 니 다. TranslateAnimation ta = new TranslateAnimation(Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 2, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 2);
애니메이션 재생 관련 설정

 //        
ta.setDuration(2000);
 //         
ta.setRepeatCount(1);
 //         
ta.setRepeatMode(Animation.REVERSE);
 //       ,             
ta.setFillAfter(true);
 //    
iv.startAnimation(ta);
크기 조정:
1.매개 변수 0.1f 는 애니메이션 의 시작 폭 이 실제 너비 의 0.1 배 임 을 나타 낸다.
2.매개 변수 4 는 애니메이션 의 끝 폭 이 실제 너비 의 4 배 임 을 나타 낸다.
3.크기 조정 한 중심 점 은 iv 왼쪽 상단 에 있 습 니 다.ScaleAnimation sa = new ScaleAnimation(0.1f, 4, 0.1f, 4);1.  매개 변수 0.1f 와 4 의 미 는 위 와 같 습 니 다.
2.  크기 조정 중심 점 변경:들 어 오 는 두 개의 0.5f,유형 은 모두 자신 에 대한 것 입 니 다.이 두 매개 변 수 는 크기 조정 중심 점 을 바 꾸 었 습 니 다.
3.  중심 점 x 좌표=리 얼 X+0.5*iv 너비
4.  중심 점 Y 좌표=진실 Y+0.5*iv 높이 ScaleAnimation sa = new ScaleAnimation(0.1f, 4, 0.1f, 4, Animation.RELATIVETOSELF, 0.5f, Animation.RELATIVETOSELF, 0.5f);투명:
0 은 완전 투명,1 은 완전 불투명AlphaAnimation aa = new AlphaAnimation(0, 0.5f);회전:
1.  20 애니메이션 이 시 작 될 때의 iv 각 도 를 나타 낸다
2.  360 애니메이션 이 끝 날 때 iv 의 각 도 를 나타 낸다.
3.  기본 회전 원심 은 iv 왼쪽 상단 에 있 습 니 다.RotateAnimation ra = new RotateAnimation(20, 360);
1.  20,360 의 의 미 는 위 와 같다.
2.  원심 좌 표를 지정 하고 자신 에 비해 값 이 0.5 로 들 어 오 면 원심 의 x 좌표:진실 X+iv 너비*0.5
3.  원심 의 Y 좌표:진실 Y+iv 높이*0.5RotateAnimation ra = new RotateAnimation(20, 360, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);모든 애니메이션 이 이륙 합 니 다.

 //      
 AnimationSet set = new AnimationSet(false);
 //        
 set.addAnimation(aa);
 set.addAnimation(sa);
 set.addAnimation(ra);
 iv.startAnimation(set);
효과 그림:

레이아웃 코드:

 xmlns:tools="http://schemas.android.com/tools" 
 android:layout_width="match_parent" 
 android:layout_height="match_parent" 
 tools:context=".MainActivity"> 
 <ImageView 
 android:id="@+id/iv" 
 android:layout_width="wrap_content" 
 android:layout_height="wrap_content" 
 android:src="@drawable/ic_launcher" 
 android:layout_centerVertical="true" 
 android:layout_centerHorizontal="true" /> 
 <LinearLayout 
 android:layout_width="match_parent" 
 android:layout_height="wrap_content" 
 android:gravity="center_horizontal" 
 android:layout_alignParentBottom="true" 
 android:orientation="horizontal"> 
 <Button 
 android:layout_width="wrap_content" 
 android:layout_height="wrap_content" 
 android:onClick="translate" 
 android:text="  " /> 
 <Button 
 android:layout_width="wrap_content" 
 android:layout_height="wrap_content" 
 android:onClick="scale" 
 android:text="  " /> 
 <Button 
 android:layout_width="wrap_content" 
 android:layout_height="wrap_content" 
 android:onClick="alpha" 
 android:text="  " /> 
 <Button 
 android:layout_width="wrap_content" 
 android:layout_height="wrap_content" 
 android:onClick="rotate" 
 android:text="  " /> 
 <Button 
 android:layout_width="wrap_content" 
 android:layout_height="wrap_content" 
 android:onClick="fly" 
 android:text="   " /> 
 </LinearLayout> 
</RelativeLayout> 

MainActivity.java

import android.app.Activity; 
import android.os.Bundle; 
import android.view.View; 
import android.view.animation.AlphaAnimation; 
import android.view.animation.Animation; 
import android.view.animation.AnimationSet; 
import android.view.animation.RotateAnimation; 
import android.view.animation.ScaleAnimation; 
import android.view.animation.TranslateAnimation; 
import android.widget.ImageView; 
 public class MainActivity extends Activity { 
 private ImageView iv; 
 private TranslateAnimation ta; 
 private ScaleAnimation sa; 
 private AlphaAnimation aa; 
 private RotateAnimation ra; 
 @Override 
 protected void onCreate(Bundle savedInstanceState) { 
 super.onCreate(savedInstanceState); 
 setContentView(R.layout.activity_main); 
 iv = (ImageView) findViewById(R.id.iv); 
 } 
 //   
 public void translate(View view) { 
// ta = new TranslateAnimation(10, 100, 20, 200); 
 ta = new TranslateAnimation(Animation.RELATIVE_TO_SELF, -1, Animation.RELATIVE_TO_SELF, 2, 
 Animation.RELATIVE_TO_SELF, -0.5f, Animation.RELATIVE_TO_SELF, 1.5f); 
 //       
 ta.setDuration(2000); 
 //       
 ta.setRepeatCount(1); 
 //          
 ta.setRepeatMode(Animation.REVERSE); 
 iv.startAnimation(ta); 
 } 
 //   
 public void scale(View view) { 
// sa = new ScaleAnimation(2, 4, 2, 4, iv.getWidth() / 2, iv.getHeight() / 2); 
 sa = new ScaleAnimation(0.5f, 2, 0.1f, 3, Animation.RELATIVE_TO_SELF, 0.5f, 
 Animation.RELATIVE_TO_SELF, 0.5f); 
 //       
 sa.setDuration(2000); 
 //       
 sa.setRepeatCount(1); 
 //          
 sa.setRepeatMode(Animation.ABSOLUTE); 
 //       ,              
 sa.setFillAfter(true); 
 iv.startAnimation(sa); 
 } 
 //   
 public void alpha(View view) { 
 aa = new AlphaAnimation(0, 1); 
 //       
 aa.setDuration(2000); 
 //       
 aa.setRepeatCount(1); 
 //          
 aa.setRepeatMode(Animation.REVERSE); 
 //       ,              
// aa.setFillAfter(true); 
 iv.startAnimation(aa); 
 } 
 //   
 public void rotate(View view) { 
 ra = new RotateAnimation(0, 720, Animation.RELATIVE_TO_SELF, 0.5f, 
 Animation.RELATIVE_TO_SELF, 0.5f); 
 //       
 ra.setDuration(2000); 
 //       
 ra.setRepeatCount(1); 
 //          
 ra.setRepeatMode(Animation.REVERSE); 
 //       ,              
 ra.setFillAfter(true); 
 iv.startAnimation(ra); 
 } 
 //  、  、  、       
 public void fly(View view) { 
 AnimationSet set = new AnimationSet(false); 
 set.addAnimation(ta); 
 set.addAnimation(sa); 
 set.addAnimation(aa); 
 set.addAnimation(ra); 
 iv.startAnimation(set); 
 } 
} 
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기