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.5
RotateAnimation 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);
}
}
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Kotlin의 기초 - 2부지난 글에서는 Kotlin이 무엇인지, Kotlin의 특징, Kotlin에서 변수 및 데이터 유형을 선언하는 방법과 같은 Kotlin의 기본 개념에 대해 배웠습니다. 유형 변환은 데이터 변수의 한 유형을 다른 데이터...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.