반응형
안드로이드(Android) ListActivity 로 구현한 목록에 애니메이션 적용하기 |
개발환경 : window 7 64bit, Eclipse Mars, Android 4.2.2 |
이전 아티클에서 ListActivity 클래스를 상속받아 목록페이지를 구현하였습니다. 이 목록 페이지가 뜰 때 애니메이션 효과를 얻을수 있도록 구현합니다. |
리스트를 만드는 Activity 에서 애니메이션을 구현할려면
setLayoutAnimation() 함수의 인수로
LayoutAnimationController 객체를 넘기면 됩니다.
ListView 속성값 layoutAnimation 에 xml 값을
셋팅하는 것과 같습니다.
android:layoutAnimation="@drawable/list_layout_controller"
LayoutAnimationController controller = AnimationUtils .loadLayoutAnimation(this, R.drawable.list_layout_controller); getListView().setLayoutAnimation(controller);
loadLayoutAnimation() 인수로 들어가는 xml 은
다음과 같습니다.
list_layout_controller.xml
<layoutAnimation xmlns:android="http://schemas.android.com/apk/res/android" android:delay="80%" android:animation="@drawable/scale" />
scale.xml 에는 애니메이션효과를 위한 옵션값들이
들어가게 되는데 duration 은 작아졌다가 원래 크기로
돌아오는데 걸리는 시간입니다.
scale.xml
<set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator" > <scale android:duration="500" android:fromXScale="0.3" android:fromYScale="0.3" android:pivotX="10%" android:pivotY="10%" android:startOffset="100" android:toXScale="1" android:toYScale="1.0" /> </set>
리스트를 표현한 activity 의 전체 소스입니다.
import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TextView; public class SampleActivity16 extends Activity { private TextView country; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_sample_activity16); country = (TextView) findViewById(R.id.myCountry); Button SelectCountryButton = (Button) findViewById(R.id.selectCountryButton); SelectCountryButton .setOnClickListener(countryButtonOnClickListener); } private Button.OnClickListener countryButtonOnClickListener = new Button.OnClickListener() { public void onClick(View v) { Intent intent = new Intent(); intent.setClass(SampleActivity16.this, AndListActivity.class); startActivityForResult(intent, 0); } }; @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == 0) { switch (resultCode) { case RESULT_OK: country.setText(data.getStringExtra("country")); break; case RESULT_CANCELED: break; } } } }
반응형
'안드로이드 개발' 카테고리의 다른 글
안드로이드(Android) PhoneGap, Eclipse 와 연동하여 개발을 위한 환경셋팅 1부 (0) | 2014.11.01 |
---|---|
안드로이드(Android) 통지메시지(Notification) 소리를 MP3 로 연결 (0) | 2014.10.31 |
안드로이드(Android) Notification is deprecated 통지메시지 변경하기 (0) | 2014.10.31 |
안드로이드(Android) 체크박스(checkbox) 체크여부 판단 샘플 예제 (0) | 2014.10.30 |
안드로이드(Android) ListActivity 를 이용하여 목록페이지 만들기 (1) | 2014.10.29 |
안드로이드(Android) 레이아웃에 애니메이션 기능을 이용해 시각효과 주기 (0) | 2014.10.29 |
안드로이드(Android) AnimationDrawable 이용하여 애니메이션 만들기 (0) | 2014.10.28 |
안드로이드(Android) 스레드를 이용하여 애니메이션 구현하기 (0) | 2014.10.28 |