반응형
|
안드로이드(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 |

