class MainActivity
package com.example.choi.ex08_animation;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void onClick(View v){
Intent intent=null;
switch (v.getId()){
case R.id.btnStart:
intent =new Intent(this, FrameActivity.class);
break;
}
startActivity(intent);
}
}
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.choi.ex08_animation.MainActivity">
<Button
android:text="애니메이션"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:id="@+id/btnStart"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:onClick="onClick" />
</RelativeLayout>
babydroum.xml
<?xml version="1.0" encoding="utf-8"?>
<!-- 파일명 : babaydrum.xml -->
<!-- 프레임 애니메이션에 사용할 리소스 목록을 정의 -->
<animation-list
xmlns:android="http://schemas.android.com/apk/res/android">
<!-- android:drawable 리소스 이름 -->
<!-- android:duration 애니메이션 시간 -->
<item
android:drawable="@drawable/babydrum1"
android:duration="300"
/>
<item
android:drawable="@drawable/babydrum2"
android:duration="300"
/>
<item
android:drawable="@drawable/babydrum3"
android:duration="300"
/>
</animation-list>
class FrameActivity
package com.example.choi.ex08_animation;
import android.graphics.drawable.AnimationDrawable;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
public class FrameActivity extends AppCompatActivity {
//1.변수 선언
Button btnStart, btnStop;
ImageView image1;
AnimationDrawable ani; //애니메이션 객체
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.frame);
//2.위젯
btnStart=(Button)findViewById(R.id.btnStart);
btnStop=(Button)findViewById(R.id.btnStop);
image1=(ImageView)findViewById(R.id.image1);
//babydrum.xml에 설정된 애니메이션 정보를 로딩
ani =(AnimationDrawable)image1.getBackground();
//이미지뷰에 백그라운드 스레드 추가
// 뷰.post(스레드 객체)
image1.post(new Runnable() {
@Override
public void run() {
ani.start();//애니메이션 시작
}
});
//시작 버튼 클릭
btnStart.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ani.start(); //애니메이션 시작
}
});
//종료 버튼 클릭
btnStop.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ani.stop(); //애니메이션 멈춤
}
});
}
}
frame.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/frame"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.choi.ex08_animation.FrameActivity">
<Button
android:text="시작"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:id="@+id/btnStart" />
<Button
android:text="종료"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_toRightOf="@+id/btnStart"
android:layout_toEndOf="@+id/btnStart"
android:layout_marginLeft="40dp"
android:layout_marginStart="40dp"
android:id="@+id/btnStop" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/btnStart"
android:background="@drawable/babydrum"
android:layout_marginTop="34dp"
android:id="@+id/image1" />
</RelativeLayout>
댓글 ( 4)
댓글 남기기