API Demos 2.2 연구 노트 (2) - 애니메이션
보충 애니메이션 은 주로 위치, 크기 변화 등 간단 한 전환 을 완성 합 니 다.
프레임 애니메이션 은 주로 일련의 그리 기 가능 한 자원 을 순서대로 불 러 옵 니 다.
보충 애니메이션
1. Tweened Animation 은 view, surface 또는 다른 대상 에 사용 할 수 있 으 며 주로 네 가지 유형 으로 나 눌 수 있다.
Alpha
투명도 그 라 데 이 션 애니메이션
Scale
사이즈 그 라 데 이 션 애니메이션
Translate
위치 이동 애니메이션
Rotate
화면 회전 애니메이션
애니메이션 속성 소개:
Alpha
fromAlpha
애니메이션 시작 시 투명도, 0.0 은 완전 투명
toAlpha
애니메이션 종료 시 투명도, 1.0 은 완전히 불투명 함 을 나 타 냅 니 다.
Scale
fromXScale
애니메이션 시작 시 X 좌표 의 신축 크기
toXScale
애니메이션 종료 시 X 좌표 의 신축 크기
fromYScale
애니메이션 시작 시 Y 좌표 의 신축 크기
toYScale
애니메이션 종료 시 Y 좌표 의 신축 크기
pivotX
애니메이션 이 개체 의 X 좌표 에 대한 시작 위치
pivotY
애니메이션 이 개체 의 Y 좌표 에 대한 시작 위치
Translate
fromXDelta
애니메이션 시작 시 X 좌표 의 위치
toXDelta
애니메이션 이 끝 날 때 X 좌표 의 위치
fromYDelta
애니메이션 시작 시 Y 좌표 의 위치
toYDelta
애니메이션 종료 시 Y 좌표 의 위치
Rotate
fromDegrees
애니메이션 시작 시 개체 의 각도
toDegrees
애니메이션 이 끝 날 때 물건 이 회전 하 는 각도 가 360 도 이상 일 수 있 습 니 다.
pivotX
애니메이션 이 개체 의 X 좌표 에 대한 시작 위치
pivotY
애니메이션 이 개체 의 Y 좌표 에 대한 시작 위치
2. Animation 을 사용 하 는 방식 은 두 가지 가 있 는데 하 나 는 XML 에서 애니메이션 을 정의 하 는 것 이 고 다른 하 나 는 자바 코드 에서 애니메이션 을 정의 하 는 것 이다.
XML 에서 애니메이션 정의
예시 1: 애니메이션 을 View 에 적용 하기
(1) animation 을 만 들 고 res \ anim \ alpha. xml 를 새로 만 듭 니 다.
<?xml version="1.0" encoding="utf-8"?>
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator"
android:fromAlpha="1" android:toAlpha="0"
android:duration="@android:integer/config_longAnimTime"/>
(2) layot 를 만 들 고 res \ layot \ main. xml 를 새로 만 듭 니 다.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView android:id="@+id/text01"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello" />
<Button android:id="@+id/button01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/alpha" />
</LinearLayout>
(3) Activity, AnimationActivity. java 를 만 듭 니 다.Animation Utils. loadAnimation 을 통 해 애니메이션 을 불 러 오고 aView. startAnimation 을 통 해 애니메이션 을 실행 합 니 다.
package com.xeedroid;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.animation.AnimationUtils;
public class AnimationActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
findViewById(R.id.button01).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
findViewById(R.id.text01).startAnimation(
AnimationUtils.loadAnimation(AnimationActivity.this,
R.anim.alpha));
}
});
}
}
(4) 앱 을 실행 하고 알파 단 추 를 누 르 면 텍스트 정보 가 그 라 데 이 션 됩 니 다.
예시 2: 애니메이션 을 Activity 에 적용 하기
Android 공식 예제, com. example. android. apis. app. Animation.여기 서 관건 적 인 부분 만 열거 합 니 다.
(1) animation xml 파일.
res/anim/fade.xml
<?xml version="1.0" encoding="utf-8"?>
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator"
android:fromAlpha="0.0" android:toAlpha="1.0"
android:duration="@android:integer/config_longAnimTime" />
res/anim/hold.xml
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator"
android:fromXDelta="0" android:toXDelta="0"
android:duration="@android:integer/config_longAnimTime" />
res/anim/zoom_enter.xml
<?xml version="1.0" encoding="utf-8"?>
<!-- Special window zoom animation: this is the element that enters the screen,
it starts at 200% and scales down. Goes with zoom_exit.xml. -->
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/decelerate_interpolator">
<scale android:fromXScale="2.0" android:toXScale="1.0"
android:fromYScale="2.0" android:toYScale="1.0"
android:pivotX="50%p" android:pivotY="50%p"
android:duration="@android:integer/config_mediumAnimTime" />
</set>
res/anim/zoom_exit.xml
<?xml version="1.0" encoding="utf-8"?>
<!-- Special window zoom animation: this is the element that exits the
screen, it is forced above the entering element and starts at its
normal size (filling the screen) and scales down while fading out.
This goes with zoom_enter.xml. -->
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/decelerate_interpolator"
android:zAdjustment="top">
<scale android:fromXScale="1.0" android:toXScale=".5"
android:fromYScale="1.0" android:toYScale=".5"
android:pivotX="50%p" android:pivotY="50%p"
android:duration="@android:integer/config_mediumAnimTime" />
<alpha android:fromAlpha="1.0" android:toAlpha="0"
android:duration="@android:integer/config_mediumAnimTime"/>
</set>
(2) 주요 활동 파일, com / example / android / apis / app / animation. java.overridePendingTransition 방법 을 통 해 사용자 정의 애니메이션 을 Activity 사 이 를 뛰 어 넘 을 때 기본 애니메이션 으로 덮어 씁 니 다.
package com.example.android.apis.app;
// Need the following import to get access to the app resources, since this
// class is in a sub-package.
import com.example.android.apis.R;
import com.example.android.apis.view.Controls1;
import android.app.Activity;
import android.content.ComponentName;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
/**
* <p>Example of explicitly starting and stopping the {@link LocalService}.
* This demonstrates the implementation of a service that runs in the same
* process as the rest of the application, which is explicitly started and stopped
* as desired.</p>
*/
public class Animation extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_animation);
// Watch for button clicks.
Button button = (Button)findViewById(R.id.fade_animation);
button.setOnClickListener(mFadeListener);
button = (Button)findViewById(R.id.zoom_animation);
button.setOnClickListener(mZoomListener);
}
private OnClickListener mFadeListener = new OnClickListener() {
public void onClick(View v) {
startActivity(new Intent(Animation.this, Controls1.class));
overridePendingTransition(R.anim.fade, R.anim.hold);
}
};
private OnClickListener mZoomListener = new OnClickListener() {
public void onClick(View v) {
startActivity(new Intent(Animation.this, Controls1.class));
overridePendingTransition(R.anim.zoom_enter, R.anim.zoom_exit);
}
};
}
자바 코드 에서 애니메이션 정의
예시 1:
(1) layot 파일 은 위의 res \ layot \ main. xml 과 같 습 니 다.
(2) Animation Activity. java 코드 를 수정 합 니 다.코드 에 animation 을 만 들 고 속성 을 설정 합 니 다.
package com.xeedroid;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.animation.AccelerateDecelerateInterpolator;
import android.view.animation.Animation;
import android.view.animation.RotateAnimation;
public class AnimationActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
findViewById(R.id.button01).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// rotate animation
Animation anim = new RotateAnimation(0, 360);
anim.setDuration(5000);
anim.setInterpolator(new AccelerateDecelerateInterpolator());
findViewById(R.id.text01).startAnimation(anim);
}
});
}
}
2. 프레임 애니메이션
후속
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
XML이란 무엇입니까?이것은 저장, 검색 및 공유할 수 있는 형식으로 데이터를 저장하는 강력한 방법입니다. 가장 중요한 것은 XML의 기본 형식이 표준화되어 있기 때문에 시스템이나 플랫폼 간에 로컬 또는 인터넷을 통해 XML을 공유하거나...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.