이미지가 서서히 변하는 효과(자연스럽게)

main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:gravity="center" >

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/img"
        android:src="@drawable/jessica" />

</LinearLayout>


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="0.0"
    android:toAlpha="1.0"
    android:duration="2000"   />

<!--
    interpolator : 안드로이드에서 인터폴레이터는 애니메이션의 변화 정도를 정의
           이 값을 조정하여 애니메이션을 가속시킬 수도 있고, 감속시킬 수도 있으며 반복시킬수도 있음
    fromAlpha : 애니메이션 시작
    toAlpha : 애니메이션 끝
           알파값 : 0.0 (완전투명) ~ 1.0(완전 불투명)
    duration : 애니메이션이 진행되는데 "지연시간 (밀리세컨드)"
           참조 클래스 : android.viewanimation.AlphaAnimaiton

-->




main activity
package kr.android.animation;

import android.app.Activity;
import android.os.Bundle;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.ImageView;

public class AnimationDemo1 extends Activity {
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);

		ImageView image = (ImageView)findViewById(R.id.img);
		Animation alphaAnim = AnimationUtils.loadAnimation(this, R.anim.alpha);
		image.startAnimation(alphaAnim);
	}
}





이미지가 확대 되고 한바퀴 돌려지는 효과 (캡쳐는 일부분)

main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:gravity="center" >

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/img"
        android:src="@drawable/jessica" />

</LinearLayout>




tween.xml
<?xml version="1.0" encoding="utf-8"?>
<!-- 
여러 가지 애니메이션 효과를 set로 묶어줌.
 -->
<set xmlns:android="http://schemas.android.com/apk/res/android"
	android:interpolator="@android:anim/accelerate_decelerate_interpolator">
<!-- 
여러 가지 android:interpolator
1) 가속효과(accelerate,시작은 천천히, 갈수록 가속화) : accelerate_interpolator
2) 감속효과(decelarate, 시작은 빨리, 갈수록 감속화) : decelerate_interpolator
3) 가속/감속(시작과 끝은 천천히, 중간은 가속화) : accelerate_decelerate_interpolator
4) 튀는 효과(bounce, 공이 튀는 듯한 효과) : bounce_interpolator
5) 예측효과(anicipate,개구리가 움츠렸다 튀어나가는 듯한 효과) : anicipate_interpolator
6) 예측/넘침효과 : anicipate_overshoot_interpolator
7) 반복효과(cycle, 수학의 사인곡선을 이용하여 지정한 횟수만큼 반복):cycle_interpolator
8) 선형적인 변화지수(linear):linear_interpolator
9) 넘침효과(overshoot,원래 지정된 애니메이션 목표를 지나쳐버리는 효과):overshoot_interpolator
 --> 	
	<alpha 
       android:interpolator="@android:anim/accelerate_interpolator"
       android:fromAlpha="0.0" 
       android:toAlpha="1.0" 
       android:duration="1000" 
       />
	<scale 
		android:fromXScale="1.0" android:toXScale="2.0" 
		android:fromYScale="1.0" android:toYScale="2.0" 
		android:pivotX="50" android:pivotY="50%p"
		android:startOffset="2000"
		android:duration="1000" 
		/>
<!-- 
 pivotX, pivotY
 확대 변형을 하려면, 확대할 기준점이 필요. 이 값을 지정하지 않으면 객체의 중심점을 기준으로 변경
 "50"과 "50%"는 변형 대상 객체의 크기에 비율을 의미, "50%p"는 변형 대상 객체의 부모의 크기에 비례하여
 중심점을 정함.
 
 startOffset을 "2000"으로 하면 확대 효과를 2초 후에 작동하도록 설정
 -->	
	<translate 
		android:fromXDelta="0" 
		android:toXDelta="0" 
		android:fromYDelta="0" 
		android:toYDelta="50%" 
		android:startOffset="3000"
		android:duration="1000" 
		/>
	<rotate 
		android:fromDegrees="0" android:toDegrees="360"
		android:pivotX="0" android:pivotY="50%p"
		android:startOffset="4000"
		android:duration="1000" />
</set>	


package kr.android.animation2;

import android.app.Activity;
import android.os.Bundle;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.ImageView;

public class AnimationDemo2 extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        ImageView image = (ImageView)findViewById(R.id.img);
        Animation tween = AnimationUtils.loadAnimation(this, R.anim.tween);
        image.startAnimation(tween);
    }
}


012


+ Recent posts