안드로이드(Android) 레이아웃에 애니메이션 기능을 이용해 시각효과 주기 |
개발환경 : window 7 64bit, Eclipse Mars, Android 4.2.2 |
안드로이드에서는 레이아웃을 애니메이션 효과를 줄수 있습니다. 리스트에서 글이 서서나 나타나면서 커진다던지 아니면 화면전환이 서서히 사라지듯이 표현하는 기능 말이죠. |
레이아웃에 애니메이션효과를 주기위해 우선 추가
해야할 xml 파일이 있습니다.
res/drawable 폴더에 2개의 xml 파일을 추가합니다.
애니메이션 효과를 주기 위한 옵션값들입니다.
List_layout_controll.xml 에 animation 값에 scale.xml 셋팅합니다.
그리고 메인 activity 레이아웃에 list_layout_controll.xml
셋팅하시면 됩니다.
list_layout_controller.xml |
<layoutAnimation xmlns:android="http://schemas.android.com/apk/res/android" android:delay="80%" android:animation="@drawable/scale" />
scale.xml |
<set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator" > <scale android:duration="2000" android:fromXScale="0.1" android:fromYScale="0.1" android:pivotX="20%" android:pivotY="20%" android:startOffset="100" android:toXScale="1" android:toYScale="1.0" /> </set>
메인 activity 레이아웃 입니다. ListView 에 애니메이션
효과를 주기 위해 layoutAnimation 속성값에
list_layout_controll.xml 파일을 링크합니다.
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <ListView android:id="@+id/myListView" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layoutAnimation="@drawable/list_layout_controller" android:persistentDrawingCache="animation|scrolling" /> <Button android:id="@+id/myRestartButton" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="다시시작" /> </LinearLayout>
메인에 리스트를 만들기 위한 함수입니다.
샘플로 텍스트들을 만들어 ArrayAdapter 객체를
만든후 ListView 에 셋팅합니다.
private void setupListView() { String[] listItems = new String[] { "안녕하세요. 녹두장군입니다.", "이것은 애니메이션 효과를 사용한 것입니다.", "다들 잘 지내시죠?", "사이트에 가서 소스보기","오늘은 청명한 가을날씨" }; ArrayAdapter<String> listItemAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, listItems); ListView lv = (ListView) this.findViewById(R.id.myListView); lv.setAdapter(listItemAdapter); }
이미 xml 에 애니메이션 효과를 다 셋팅해 놓았기 때문에
메인 Activity 에서는 별로 할게 없습니다. setContentView()
에 메인 레이아웃을 셋팅해 주기만 하면 됩니다.
아래는 전체 소스입니다.
import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.ListView; public class SampleActivity15 extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); loadScreen(); } private Button.OnClickListener restartButtonOnClickListener = new Button.OnClickListener() { public void onClick(View v) { loadScreen(); } }; private void loadScreen() { setContentView(R.layout.activity_sample_activity15); setupListView(); Button MyRestartButton = (Button) findViewById(R.id.myRestartButton); MyRestartButton.setOnClickListener(restartButtonOnClickListener); } private void setupListView() { String[] listItems = new String[] { "안녕하세요. 녹두장군입니다.", "이것은 애니메이션 효과를 사용한 것입니다.", "다들 잘 지내시죠?", "사이트에 가서 소스보기","오늘은 청명한 가을날씨" }; ArrayAdapter<String> listItemAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, listItems); ListView lv = (ListView) this.findViewById(R.id.myListView); lv.setAdapter(listItemAdapter); } }
'안드로이드 개발' 카테고리의 다른 글
안드로이드(Android) Notification is deprecated 통지메시지 변경하기 (0) | 2014.10.31 |
---|---|
안드로이드(Android) 체크박스(checkbox) 체크여부 판단 샘플 예제 (0) | 2014.10.30 |
안드로이드(Android) ListActivity 로 구현한 목록에 애니메이션 적용하기 (0) | 2014.10.30 |
안드로이드(Android) ListActivity 를 이용하여 목록페이지 만들기 (1) | 2014.10.29 |
안드로이드(Android) AnimationDrawable 이용하여 애니메이션 만들기 (0) | 2014.10.28 |
안드로이드(Android) 스레드를 이용하여 애니메이션 구현하기 (0) | 2014.10.28 |
안드로이드(Android) 간단한 스레드 사용법과 숫자값 올리기 (0) | 2014.10.27 |
안드로이드(Android) 아날로그 시계의 시간을 음성(TTS) 으로 알려주기 (3) | 2014.10.27 |