각 xml 세팅은 여기서 참조 하세요
package com.gusfree.twinanimation; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.animation.AccelerateDecelerateInterpolator; import android.view.animation.AlphaAnimation; import android.view.animation.Animation; import android.view.animation.AnimationSet; import android.view.animation.RotateAnimation; import android.view.animation.ScaleAnimation; import android.view.animation.TranslateAnimation; import android.widget.AdapterView; import android.widget.AdapterView.OnItemSelectedListener; import android.widget.ArrayAdapter; import android.widget.ImageView; import android.widget.Spinner; import android.widget.Toast; public class TwinAnimaionActivity extends Activity { Spinner spinner; ImageView imageView; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); spinner=(Spinner)findViewById(R.id.spinner1); imageView=(ImageView)findViewById(R.id.imageView1); ArrayAdapter adapter= ArrayAdapter.createFromResource(this,R.array.twin, android.R.layout.simple_spinner_item); adapter.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line); spinner.setAdapter(adapter); spinner.setOnItemSelectedListener(new Lisetener()); } class Lisetener implements OnItemSelectedListener{ @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { Toast.makeText(TwinAnimaionActivity.this, position+"번째", 0).show(); switch(position){ //이동애니메이션 x시작점 x끝점 y시작점 y끝점 //왼쪽 위(0,0) 오른쪽 아래 (320,460) case 0: TranslateAnimation ani0 = new TranslateAnimation(0, 320, 50, 50); ani0.setDuration(2000); imageView.startAnimation(ani0); spinner.startAnimation(ani0); break; case 1: TranslateAnimation ani1 = new TranslateAnimation( Animation.RELATIVE_TO_PARENT,0 ,Animation.RELATIVE_TO_PARENT,1 ,Animation.RELATIVE_TO_PARENT,0 ,Animation.RELATIVE_TO_PARENT,1); ani1.setDuration(2000); imageView.startAnimation(ani1); spinner.startAnimation(ani1); break; case 2: AlphaAnimation ani2 = new AlphaAnimation(1,0);//fade out ani2.setDuration(2000); imageView.startAnimation(ani2); spinner.startAnimation(ani2); break; //~각도,->각도,x중심,y중심 case 3: RotateAnimation ani3=new RotateAnimation(-360, 400,1,1); ani3.setDuration(2000); ani3.setFillAfter(true);//끝난 상태로 끝 ani3.setRepeatCount(2); imageView.startAnimation(ani3); spinner.startAnimation(ani3); break; //크기 변경 애니메이션 case 4: ScaleAnimation ani4= new ScaleAnimation(1, 5,1,5,5,5); ani4.setDuration(2000); imageView.startAnimation(ani4); spinner.startAnimation(ani4); case 5: AnimationSet set1= new AnimationSet(true);//가속도를 쓰겟다. RotateAnimation ani5=new RotateAnimation(-360, 400,1,1);//회전 TranslateAnimation ani6 = new TranslateAnimation(0, 320, 50, 50);//이동 AccelerateDecelerateInterpolator adi = new AccelerateDecelerateInterpolator(); set1.addAnimation(ani5); set1.addAnimation(ani6); set1.setInterpolator(adi); set1.setDuration(2000); set1.setFillAfter(true); imageView.startAnimation(set1); } } @Override public void onNothingSelected(AdapterView<?> arg0) { } } }
빙글빙글돌아서 간다.
'Android > 2012.04월 강좌' 카테고리의 다른 글
7일차 Thread (0) | 2012.05.04 |
---|---|
7일차 Notification (0) | 2012.05.04 |
7일차 ScaleAnimation (0) | 2012.05.04 |
7일차 RotateAnimation(setFillAfter,setRepeatCount) (0) | 2012.05.04 |
7일차 AlphaAnimation (0) | 2012.05.04 |