Animation 효과 제어(一)
6661 단어 animation
Tweened Animations 만들기 단계 1, Animation Set 대상 만들기 2, 필요에 따라 해당하는 Animation 대상 만들기 3, 소프트웨어 애니메이션의 수요에 따라 Animation 대상에 해당하는 데이터 설정 4, Animation 대상을 Animation Set 대상에 추가하기 5, 컨트롤러 대상을 사용하여Animation Set를 실행합니다
private class AlphaButtonListener implements OnClickListener {
@Override
public void onClick(View view) {
// AnimationSet
AnimationSet animationSet = new AnimationSet(true);
// AlphaAnimation ,1 ,0 ,
AlphaAnimation alphaAnimation = new AlphaAnimation(1, 0);
// ( : )
alphaAnimation.setDuration(1000);
// AlphaAnimation AnimationSet
animationSet.addAnimation(alphaAnimation);
// ImageView startAnimation
imageView.startAnimation(animationSet);
}
}
private class RotateButtonListener implements OnClickListener {
@Override
public void onClick(View view) {
AnimationSet animationSet = new AnimationSet(true); /*Animation.RELATIVE_TO_PARENT, ,1f ,0.5f ,Animation.RELATIVE_TO_SELF, , , */
RotateAnimation rotateAnimation = new RotateAnimation(0, 360,
Animation.RELATIVE_TO_PARENT, 1f,
Animation.RELATIVE_TO_PARENT, 0f);
rotateAnimation.setDuration(5000);
animationSet.addAnimation(rotateAnimation);
imageView.startAnimation(animationSet);
}
}
private class ScaleButtonListener implements OnClickListener {
@Override
public void onClick(View view) {
// Interpolator
AnimationSet animationSet = new AnimationSet(true);
// 100% 10%, “ ”
ScaleAnimation scaleAnimation = new ScaleAnimation(1, 0.1f, 1,
0.1f, Animation.RELATIVE_TO_SELF, 0.5f,
Animation.RELATIVE_TO_SELF, 0.5f);
animationSet.addAnimation(scaleAnimation);
// 1
animationSet.setStartOffset(1000);
// true,
animationSet.setFillAfter(true);
// false,
animationSet.setFillBefore(false);
// 3
//animationSet.setRepeatCount(3);
animationSet.setDuration(2000);
imageView.startAnimation(animationSet);
}
}
private class TranslateButtonListener implements OnClickListener {
@Override
public void onClick(View view) {
AnimationSet animationSet = new AnimationSet(true);
/* X , X
Y , Y */
TranslateAnimation translateAnimation = new TranslateAnimation(
Animation.RELATIVE_TO_SELF, 0f,
Animation.RELATIVE_TO_SELF,
0.5f, Animation.RELATIVE_TO_SELF, 0f,
Animation.RELATIVE_TO_SELF, 1.0f);
translateAnimation.setDuration(1000);
animationSet.addAnimation(translateAnimation);
imageView.startAnimation(animationSet);
}
}
설정 파일 xml을 이용하여 animation을 설정합니다. 1,res 폴더 아래에 anim이라는 폴더를 만듭니다. 2,xml 파일을 만듭니다. set 탭 3을 먼저 추가하고 이 탭에rotate,alpha,scale,translate4를 추가하고 코드에AnimationUtil을 사용하여 xml 파일을 불러오고 Animation 대상을 생성합니다.
android:toDegrees="+350"//각도가 정각android:pivotX="50"//절대 위치 포지셔닝android:pivotX="50%"//컨트롤 자체에 대한 포지셔닝 사용android:pivotX="50%p"//컨트롤에 대한 부 컨트롤 포지셔닝
여러 개의 효과가 같은 xml 파일에 불러올 수 있습니다. 이렇게 하면 여러 개의 효과를 동시에 처리할 수 있습니다
파일 알파를 만듭니다.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator"
android:shareInterpolator="true">
<alpha
android:fromAlpha="1.0"
android:toAlpha="0.0"
android:startOffset="500"
android:duration="2000" />
<rotate android:fromDegrees="0"
android:toDegrees="360"
android:pivotX="50%"
android:pivotY="50%"
android:duration="2000" />
</set>
private class AlphaButtonListener implements OnClickListener {
@Override
public void onClick(View view) {
// AnimationUtils
// Animation animation = AnimationUtils.loadAnimation(MainActivity.this, R.anim.alpha);
// imageView.startAnimation(animation);
//
AnimationSet animationSet = new AnimationSet(false);
AlphaAnimation alpha = new AlphaAnimation(1.0f, 0.0f);
alpha.setInterpolator(new DecelerateInterpolator());
RotateAnimation rotate = new RotateAnimation(0, 360,
Animation.RELATIVE_TO_SELF, 0.5f,
Animation.RELATIVE_TO_SELF, 0.5f);
rotate.setInterpolator(new AccelerateInterpolator());
animationSet.addAnimation(alpha);
animationSet.addAnimation(rotate);
animationSet.setDuration(2000);
animationSet.setStartOffset(500);
imageView.startAnimation(animationSet);
}
}
Interpolator 클래스는 애니메이션 변화의 속도를 정의합니다.
android:interpolator="//애니메이션 변화 속도 설정 android:shareInterpolator="true"//공유 애니메이션 변화 속도
Frame-by-Frame Animations - 프레임
Drawable 시퀀스, 이 Drawable들은 지정한 시간에 따라 하나씩 표시할 수 있습니다
res/drawable-ldpi 디렉터리에서 anim 만들기nv.xml 파일
<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot="false">
<item android:drawable="@drawable/nv1" android:duration="500" />
<item android:drawable="@drawable/nv2" android:duration="500" />
<item android:drawable="@drawable/nv3" android:duration="500" />
<item android:drawable="@drawable/nv4" android:duration="500" />
</animation-list>
private class ButtonListener implements OnClickListener{
@Override
public void onClick(View v) {
imageView.setBackgroundResource(R.drawable.anim_nv);
AnimationDrawable animationDrawable = (AnimationDrawable)imageView.getBackground();
animationDrawable.start();
}
}
1. LayoutAnimationController는 하나의layout에 있거나 ViewGroup에 있는 컨트롤러에 애니메이션 효과 설정을 한다. 2. 컨트롤러마다 같은 애니메이션 효과가 있다. 3. 이런 컨트롤러의 애니메이션 효과는 서로 다른 시간에 나타난다. 4. LayoutAnimationController는 xml 문서에 설정할 수도 있고 코드에 설정할 수도 있다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
How to make animation on scroll ?There have so many animation for icon scroll, but today we will do animation type arrow run down like animated last post...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.