애니메이션을 하는 순간 뷰가 gone이어도 보여진다.
포물선 이동도 애니메이션으로 가능하다.
그래서 애니메이션 클래스를 만든다.
이니셜라이즈 클래스 오버라이드.
뷰에 속한 페어런트의 크기가 넘어온다.
어플라이
변화정보가 넘어온다. interpolatedTime 이만큼 변했을때,
메트릭과 알파 ,로 변환된다. Scale할 수 있다. 이런걸 행렬로 나타 낼 수 있다.
반드시 슈퍼에 이니셜라이즈를 호출해야 한다.
트윈애니메이션
위치가 바뀌는게 아니라 그림만 바뀌는것
그림을 그릴 때 점을 변환해서 그리는 것
바꿔서 찍고 바꿔서 찍고 하는거다.
시간이 주어지면 변환을 얼마나 하는거냐 이런거
3D이런 애니메이션을 할 때는 그래픽에 카메라를 이용해서 변환을 이용해서 하는 것.
이렇게 만들어진 애니메이션으로 리스트같은데 적용할 수 있다.
Property Animation
왜 프로퍼티 애니메이션이냐면 어떤값을 시간에 따라서 계속 바뀐 걸 가지고 특정한 object를 뷰의 속성에 적용해서 이다.
translate하면 뷰의 x,y에 적용해서 뷰의 위치도 바뀐다.
차이는 얻은 값을 속성에 적용하는것.
일반적으로 코드로 많이 이용을 한다.
ValueAcimator를 이용한다.
ValueAnimator
xml 로 할 경우 valueAnimator = (ValueAnimator)AnimatorInflater를 이용한다.
ObjectAnimator
color를 바꿀건데,
Value애니메이터 말고 Object애니메이터를 쓰면된다. argument는 animatorView,"textcolor", - 자바빈을 따르기 때문에 textcolor속성에 접근하는 거다.
xml 로 정의할 때, 프로퍼티 네임을 정의한다. 위에 textcolor
일반적으로 오브젝트 애니메이터를 많이 쓴다.
오차를 줄이기 위해서 float로 연산을 하게 된다.
api 12 부터 뷰 프로퍼티 애니메이터를 이용한다.
Property Animation - ViewPropertyAnimator API12
알파 - 로테이트 - 스테이트 이런 함수로 지정을해주면 된다.
간단하게 해보겠다.
animatorView.animate();
이러면 알파,듀레이션, start(); 이런 애니메이션 을 할 수있다.
default가 1이라서 안보이게 사라지게 할 수 있다.
간단한 뷰 애니메이션 적용하는 방법이다. scale, rotate
안드로이드에서 애니메이션을 안하면 사용자가 제대로 동작하고 있는지 아닌지 불편하다.
가능한한 애니메이션 주는게 좋다.
아무거나 막 쓰는게 아니라 같은 액션은 같은 애니메이션으로 하는게 좋다 .
뒤에가서 material디자인 할 때 한다.
RecyclerView.ItemAnimator
Add되면 어떻게 처리할 지, 이런거다.
여러분들이 구현할 수도 있지만 오픈소스를 대부분 한다.
'Android' 카테고리의 다른 글
[9일차] 다양한 화면처리와, 뷰 애니메이션 (0) | 2016.07.25 |
---|---|
[9일차]액티비티 전환효과 overridePendingTransition (0) | 2016.07.25 |
[8일차] 애니메이션 (0) | 2016.07.22 |
[8일차] 핸들러카운트다운 실습 (0) | 2016.07.22 |
[8일차] Handler Timeout 활용 (0) | 2016.07.22 |