●애니매이션(Animation)
- 안드로이드 자체적으로 간단한 에니메이션 효과가 지원된다.
- 안드로이드에서는 트윈 에니메이션을 지원한다. 일반적인 프레임에니메이션과는 차이가 있다.
* 프레임 에니메이션 - 여러장의 이미지를 짧은 시간에 보여줘서 움직이는 것처럼 보여줌
* 트윈 에니메이션- 시작부터 마지막 사이의 에니메이션 효과를 내부적으로 예측 연산하여 보여줌
- 안드로이드에서 제공하는 시스템 애니매이션은 호출만 하면 된다. 대신 종류가 적다. 그래서 개발자가 직접 애니매이션을 제작해야 할 경우 쓰레드(Thread)를 이용해서 제작한다.
- res/anim 안에 애니매이션 효과에 관한 xml파일을 만든 후 이 xml을 위젯에 적용한다.
●트윈 에니메이션 예제
- AniActivity.java
package study.system.ani; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.view.animation.Animation; import android.view.animation.AnimationUtils; import android.widget.Button; import android.widget.ImageView; import com.example.day0321.R; public class AniActivity extends Activity implements OnClickListener{
Button btn_ani; ImageView img_ani;
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
setContentView(R.layout.scale_main);
btn_ani = (Button)findViewById(R.id.btn_ani); img_ani = (ImageView)findViewById(R.id.img_ani);
btn_ani.setOnClickListener(this);
} public void onClick(View v) {
Animation ani = AnimationUtils.loadAnimation(this, R.anim.scale); //레이아웃을 포함한 모든 위젯은 시스템 에니메이션의 대상이 된다. btn_ani.startAnimation(ani); img_ani.startAnimation(ani);
}
} |
- scale.xml
<?xml version="1.0" encoding="utf-8"?> <scale xmlns:android="http://schemas.android.com/apk/res/android" android:fromXScale="1.0" android:fromYScale="1.0" android:toXScale="5.0" android:toYScale="5.0" android:pivotX="50%" android:pivotY="50%" android:duration="5000">
</scale> |
- scale_main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:gravity="center" >
<Button android:id="@+id/btn_ani" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="버튼"/>
<ImageView android:id="@+id/img_ani" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/ic_launcher"/>
</LinearLayout>
|
'프로그래밍 > 안드로이드' 카테고리의 다른 글
안드로이드 핸들러(Handler) (0) | 2015.03.30 |
---|---|
안드로이드 쓰레드 (Thread) (0) | 2015.03.26 |
안드로이드 캔버스(Canvas) (0) | 2015.03.25 |
안드로이드 리스트뷰2 (ListView), Adapter 재정의 (0) | 2015.03.25 |
안드로이드 인플레이터(inflater) (0) | 2015.03.18 |
댓글