안 드 로 이 드 애니메이션 - 보기 애니메이션 (애니메이션 보기)
속성 애니메이션 보고 싶 음 (Property Animation): 이동 하 십시오.http://blog.csdn.net/u013424496/article/details/51700312
여기 서 다음 보기 애니메이션 (View Animation) 의 순 코드 쓰기, 그리고 하 나 는 xml 호출 입 니 다.
xml 호출 에 대해 서 는 보 러 갈 수 있 습 니 다. http://blog.csdn.net/u013424496/article/details/51144171
상대 속성 애니메이션 보기 애니메이션 사용 환경:
view animation system 이 제공 하 는 능력 은 View 에 애니메이션 만 추가 할 수 있 습 니 다.따라서 비 View 대상 에 애니메이션 을 추가 하려 면 스스로 실현 해 야 합 니 다.
view animation system 은 View 애니메이션 의 표현 에 있어 서도 제약 이 있 고 View 의 적은 부분 만 노출 되 었 다.예 를 들 어 View 는 크기 조정 과 회전 을 지원 하지만 배경 색 의 애니메이션 은 지원 되 지 않 습 니 다.
view animation system 의 또 다른 약점 은 View 의 그리 기 효과 입 니 다. 진정한 View 의 속성 은 변 하지 않 습 니 다. 예 를 들 어 대화 에서 Button 의 크기 를 어떻게 조정 하 든 Button 의 효과 적 인 클릭 구역 은 애니메이션 에 적용 되 지 않 았 을 때 그 위치 와 크기 가 변 하지 않 습 니 다.
그러나 View animation system 은 만 드 는 데 시간 이 적 고 코드 가 적 습 니 다.만약 에 View 애니메이션 이 모든 동작 을 완 성 했 거나 존재 하 는 코드 가 원 하 는 효과 에 이 르 렀 다 면 property 애니메이션 시스템 을 사용 할 필요 가 없습니다.
도해 류 구조
크게 4 가지 로 나 뉜 다. Scale Animation 크기 조정, TranslateAnimation, 그 라 데 이 션 Alpha Animation, 회전 RotateAnimation.
다음은 이 몇 개의 애니메이션 의 순 코드 실현 방식 에 대해 간단히 이야기 하 겠 습 니 다.
animation.setFillAfter(true);//애니메이션 을 끝 낼 때 현재 상 태 를 유지 하고 애니메이션 이 시 작 된 디 스 플레이 상태 로 돌아 가지 않 습 니 다.
스 케 일 애니메이션 크기 조정
1)
// View , ,
float fromXScale = 1.0f;
float toScaleX = 2.0f;
float fromYScale = 1.0f;
float toScaleY = 0.5f;
Animation animation = new ScaleAnimation(fromXScale, toScaleX, fromYScale, toScaleY);
//
animation.setDuration(3000);
// View startAnimation View
textView.startAnimation(animation);
효과 그림:
2)
// View ,
float fromXScale = 1.0f;
float toScaleX = 0.5f;
float fromYScale = 1.0f;
float toScaleY = 0.5f;
float pivotX = textView.getWidth() / 2;
float pivotY = textView.getHeight() / 2;
Animation animation = new ScaleAnimation(
fromXScale, toScaleX,
fromYScale, toScaleY,
pivotX, pivotY
);
//
animation.setDuration(3000);
// View startAnimation View
textView.startAnimation(animation);
효과 도:
3)
// View ,
float fromXScale = 1.0f;
float toScaleX = 0.5f;
float fromYScale = 1.0f;
float toScaleY = 0.5f;
int pivotXType = Animation.RELATIVE_TO_SELF;
float pivotXValue = 0.5f;
int pivotYType = Animation.RELATIVE_TO_SELF;
float pivotYValue = 0.5f;
Animation animation = new ScaleAnimation(
fromXScale, toScaleX,
fromYScale, toScaleY,
pivotXType, pivotXValue,
pivotYType, pivotYValue
);
//
animation.setDuration(3000);
// View startAnimation View
textView.startAnimation(animation);
효과 그림:
평이 TranslateAnimation
두 가지 구조 방법 이 있다.
1)
int fromXDelta = 0;
int toXDelta = getResources().getDisplayMetrics().widthPixels / 2;
int fromYDelta = 0;
int toYDelta = 0;
// X toXDelta
Animation animation = new TranslateAnimation(fromXDelta, toXDelta, fromYDelta, toYDelta);
// 5000
animation.setDuration(5000);
textView.startAnimation(animation);
효과 그림:부분 코드 소개:
from XDelta 는 애니메이션 이 시 작 될 때 View 가 원래 위치 X 축 방향 에 대한 오프셋 좌표 를 나타 낸다.
toXDelta 는 애니메이션 이 끝 날 때 View 가 원래 위치 X 축 방향의 오프셋 좌표 에 비해
from YDelta 는 애니메이션 이 시 작 될 때 View 가 원래 위치 Y 축 방향 에 대한 오프셋 좌표 를 나타 낸다.
toYDelta 는 애니메이션 이 끝 날 때 View 가 원래 위치 Y 축 방향의 오프셋 좌표 에 비해
2)
// fromX
int fromXType = Animation.ABSOLUTE;
float fromXValue = textView.getX();
// toX
int toXType = Animation.RELATIVE_TO_PARENT;
float toXValue = 0.5f;
// fromY
int fromYType = Animation.ABSOLUTE;
float fromYValue = textView.getY();
// toY
int toYType = Animation.RELATIVE_TO_SELF;
float toYValue = 3.0f;
//
Animation animation = new TranslateAnimation(
fromXType, fromXValue,
toXType, toXValue,
fromYType, fromYValue,
toYType, toYValue);
// 3000
animation.setDuration(3000);
// View startAnimation View
textView.startAnimation(animation);
효과 그림:
부분 코드 소개:
from X Type 과 from Xvalue 는 from X Type 의 수치 유형 이 from Xvalue 의 값 을 어떻게 설정 하 는 지 설명 합 니 다.from X Type 의 수 치 는 세 가지 가 있 는데 그것 이 바로 ABSOLUTE, RELATIVE 이다.TO_PARENT 와 RELATIVETO_SELF。
ABSOLUTE fromX Type 에서 ABSOLUTE 값 을 추출 할 때 fromXvalue 의 값 은 이 View 의 부모 컨트롤 의 좌표계 의 절대 값 임 을 나타 낸다. 예 를 들 어 fromXvalue 가 200 이 고 애니메이션 이 시 작 될 때 View 의 왼쪽 에서 부모 컨트롤 왼쪽 까지 의 거 리 는 200 픽 셀 이다.
RELATIVE_TO_PARENT from X Type 에서 값 을 RELATIVE 로 추출 하면TO_PARENT 에 서 는 from Xvalue 의 값 이 부모 컨트롤 크기 에 비해 백분율 임 을 나타 낸다.예 를 들 어 from Xvalue 는 0 으로 애니메이션 이 시 작 될 때 View 의 왼쪽 은 부모 컨트롤 의 왼쪽 에 바짝 붙 어 있 음 을 나타 낸다.from Xvalue 가 0.5 일 때 애니메이션 이 시 작 될 때 View 의 왼쪽 위 치 는 부모 컨트롤 수평 방향 중간 에 있 음 을 나타 낸다.from Xvalue 가 1 일 때 애니메이션 이 시 작 될 때 View 의 왼쪽 위치 와 부모 컨트롤 의 오른쪽 위치 가 완전히 겹 치 는 것 을 나타 낸다.
RELATIVE_TO_SELF from X Type 에서 값 을 RELATIVE 로 추출 하면TO_SELF 에 서 는 from Xvalue 의 값 이 자신의 사이즈 에 비해 백분율 임 을 나타 낸다.예 를 들 어 from Xvalue 는 0 으로 애니메이션 이 시 작 될 때 View 의 X 좌 표 는 초기 위치의 X 좌표 와 같다 는 것 을 나타 낸다.from Xvalue 가 0.5 일 때 애니메이션 이 시 작 될 때 View 의 왼쪽 위 치 는 초기 View 상태 에서 수평 방향 중간 위치, 즉 View 너비 의 절반 을 오른쪽으로 이동 한 것 을 나타 낸다.from Xvalue 가 1 일 때 애니메이션 이 시 작 될 때 View 의 왼쪽 위 치 는 초기 View 상태 에서 오른쪽 위치 와 겹 치 는 것 을 나타 낸다. 즉, 오른쪽 으로 View 의 너비 크기 와 거 리 를 옮 겼 다.
그 라 데 이 션 알파 애니메이션
코드:
//1.0 ,0.0
float fromAlpha = 0.0f;
float toAlpha = 1.0f;
//1.0 => 0.0 View
Animation animation = new AlphaAnimation(fromAlpha, toAlpha);
// 3000
animation.setDuration(5000);
// View startAnimation View
textView.startAnimation(animation);
효과 그림:
회전 회전 애니메이션
1)
// View , 60
Animation animation = new RotateAnimation(0, 60);
//
animation.setDuration(3000);
// View startAnimation View
textView.startAnimation(animation);
효과 그림:2) hava problem.
onCreate () 과정 에서 View 의 width 와 Height 를 0 으로 가 져 오 는 4 가지 방법 을 해결 합 니 다.
)
<pre name="code" class="html"> // View , 90
textView.post(new Runnable() {
@Override
public void run() {
float pivotX = textView.getWidth() / 2;
float pivotY = textView.getHeight() / 2;
Animation animation = new RotateAnimation(0, 90, pivotX, pivotY);
//
animation.setDuration(3000);
// View startAnimation View
textView.startAnimation(animation);
}
});
效果图:
3)
효과 도:
결론: 주로 세 편 이 죠?
1) Animation 키 클래스 를 만 드 는 인 스 턴 스
2) 애니메이션 의 setDuration 방법 으로 애니메이션 지속 시간 설정
3) 마지막 으로 View 의 startAnimation 방법 으로 애니메이션 을 시작 합 니 다.
참, 마지막 하나 더 있어.
AnimationSet
효과 도
// View , 360
int pivotXType = Animation.RELATIVE_TO_PARENT;
float pivotXValue = 0.5f;
int pivotYType = Animation.RELATIVE_TO_PARENT;
float pivotYValue = 0.5f;
Animation animation = new RotateAnimation(
0, 360,
pivotXType, pivotXValue,
pivotYType, pivotYValue
);
//
animation.setDuration(3000);
// View startAnimation View
textView.startAnimation(animation);
효과 도:
결론: 주로 세 편 이 죠?
1) Animation 키 클래스 를 만 드 는 인 스 턴 스
2) 애니메이션 의 setDuration 방법 으로 애니메이션 지속 시간 설정
3) 마지막 으로 View 의 startAnimation 방법 으로 애니메이션 을 시작 합 니 다.
참, 마지막 하나 더 있어.
AnimationSet
// Translate
TranslateAnimation translateAnimation = new TranslateAnimation(0.1f, 100.0f,0.1f,100.0f);
// Alpha
AlphaAnimation alphaAnimation = new AlphaAnimation(0.0f, 1.0f);
//
AnimationSet set = new AnimationSet(true);
set.addAnimation(translateAnimation);
set.addAnimation(alphaAnimation);
// ( )
set.setDuration(3000);
// View startAnimation View
textView.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에 따라 라이센스가 부여됩니다.