[Android/안드로이드] Simple Launcher ( 런처, 홈스크린 ( Home Screen ) )

저작시기 2011.07 |등록일 2011.09.25 | 최종수정일 2013.12.06 파일확장자압축파일 (zip) | 가격 35,000원
다운로드
장바구니관심자료
상세신규 배너

소개글

클릭시 바로 Activity 를 실행합니다.
Home Screen과 마찬가지로 현재는 가로로 4개의 아이콘이 배치되지만, 더 많게 혹은 적게도 배치 가능합니다.
마찬가지로 어플리케이션의 추가, 삭제를 인식하여 새로 설치되는 어플리케이션의 아이콘을 자동으로 추가하고,
삭제시에는 아이콘을 제거하여 줍니다.
All Apps 에 있는 아이콘을 Long Press ( 길게 누름 ) 하면 바로 홈스크린으로 이동하면서
Drag & Drop 기능으로 Home Screen 의 어디에 붙일지 움직일 수 있습니다.

현재 All Apps 와 Home Screen 간의 전환은 버튼으로 해 놓았지만,
그림파일을 구해서 리소스만 연결하면 이쁜 아이콘으로도 바꿀 수 있습니다.
( 그림파일은 저작권 문제가 될 수 있어 버튼으로 했습니다. )

Indicator 는 현재 Text 형태로 구성하였지만,
이 역시 Resource 를 구하면 이쁜 버튼으로 만들 수 있습니다.

안드로이드 기본 배경화면( Wall Paper ) 가 그대로 Simple Launcher 에도 적용됩니다. ( 설정은 구현안됨 )
라이브 월페이퍼도 마찬가지로 적용됩니다.

홈스크린에 붙은 아이콘들의 정보와 위치정보를 기억하여
단말을 껐다 켜도, 마지막으로 지정했던 위치에 아이콘이 붙어 있습니다.

소스코드는 리펙토링이 되어 있어서, 코드의 이해도 쉽고 수정도 쉬운 편입니다.
핵심 요소요소에 한글주석을 달아 놓아, 추가적으로 이해하기가 좋을 것이라 생각됩니다.

현재는 빠른 개발을 위해서 Back 키를 눌러도 런처를 종료하게 했으며, ( onBackPressed 함수 수정하면 막을 수 있음. )
Application List 에도 올라와 있습니다. ( Manifest에서 Category Launcher 를 제거하면 됨. )
DB 저장 포인트가 onDestory 이기 때문에 위의 2개를 모두 처리하게 되면
DB 저장 포인트가 살짝 변경되어야 합니다.

모든 기능을 구현하지 않고, 몇 가지는 구현하는 방법만을 써놓은 이유는,
보통 이 자료를 그대로 가져다 쓰지 않고 개량하는 방법을 사용할텐데
다 똑같은 그림이 나오지 않도록 한 것입니다.
또, 보통 쉽게 구현할 수 있는 것들입니다. ( Simple Launcher 의 다른 구현방법과 대부분 중복 )

안드로이드 2.2 ( 프로요 ) 로 구현하였지만,
2.3 ( 진저브레드 ) 및 상위 버전에서도 적용 테스트 완료했습니다.
에뮬레이터 상에서도 잘 구동합니다.

이클립스에서 프로그램을 로드하신 후에는 F5를 통해 프로젝트를 refresh 해주시고,
[Project] - [Clean] 을 통해 rebuild 작업을 거쳐주셔야 R 관련된 에러가 사라져 정상적으로 이용하실 수 있습니다.

컴파일 실행환경

Android SDK / JDK

본문내용

안드로이드 ( Android ) 로 작성된 런처 ( Launcher ) 입니다.
런처는 Home Screen ( 홈스크린 ) 으로도 불리는데, 안드로이드를 켰을 때 가장 먼저 뜨는 화면이 런처입니다.
자료는 Simple Launcher 로 메인 화면은. 일반 홈 스크린 화면과 올앱스 ( All Apps ) 화면입니다.
설치를 마치고 Home 키를 누르면 런처를 선택하는 리스트에 자동으로 추가가 됩니다.

일반 홈 스크린에는 올 앱스로부터 끌어온 아이콘들을 붙일 수 있습니다.
기존에 붙여놨던 아이콘들을 Long Press 를 통해서 위치를 바꿀 수도 있습니다.
물론 홈 스크린에 있는 아이콘을 클릭시에 All Apps 와 같이 어플리케이션이 실행됩니다.
아이콘의 배치는 4X4 로 해 놓았으나, 숫자만 몇개 바꾸어주면 더 작은 아이콘들 혹은,
큰 아이콘들로 배치가 가능합니다.
메인화면은 기본 3페이지로 되어 있으나, Cell 추가를 통해서 페이지 수를 최대 10개까지 늘릴 수 있습니다.
( 코드에서 숫자만 조정하면 최대 페이지를 더 적게 혹은 더 많게 설정할 수도 있습니다. )
셀 삭제는 추가와 반대 api 를 통해 간단히 구현할 수 있습니다.
어플리케이션의 설치와 삭제를 인식하여, 삭제시에 홈 스크린에 아이콘이 있었다면 자동으로 삭제합니다.

Long Press 를 통해 홈 스크린에 붙어있던 아이콘 이동시,
이동할 수 없는 곳으로 이동하면( 해당 위치에 다른 아이콘이 위치한다면 ) 빨간색으로 아이콘이 변합니다.
휴지통 기능은 구현이 안 되어 있지만,
이 원리를 똑같이 이용하여 휴지통에서 빨갛게 만든 후 해당 위치에서 손가락이 떼지면 삭제하도록 하면 됩니다.
HomeScreen 에서 Long Press 아이콘 이동시 또는 All Apps 를 통해 Long Press 를 통해 아이콘 이동시
페이지 이동기능도 구현되어 있습니다.
예를 들어 아이콘을 오른쪽 페이지로 보내기 위해 화면의 최우측에 아이콘을 위치시키고
1초를 기다리면 다음 페이지로 아이콘이 이동합니다.
( 이 1초도 숫자 하나만 바꾸면 바로 더 짧은 대기시간 또는 더 긴 대기시간으로 변경 가능합니다. )

현재 페이지와 전체 페이지에 대한 정보는 화면 Top 에 Indicator 의 형태로 표시되어 있습니다.
화면 전환은 일반 Drag 는 물론, Flicking ( 빠르게 손가락 확 움직이기 ) 도 인식하도록 되어 있습니다.
Flicking 에 대한 인식도 ( 얼마만큼 빠르게 움직이면 Flicking 으로 인식해서 다음 페이지로 넘어갈지 )
숫자 하나로 조정할 수 있도록 해놨습니다.

All Apps 는 세로 리스트형으로 만들어 놓았으며,
일반 런처의 All Apps 와 같은 기능으로 실행 가능한 모든 어플리케이션의 리스트를 표시하며,
클릭시 바로 Activity 를 실행합니다.
Home Screen과 마찬가지로 현재는 가로로 4개의 아이콘이 배치되지만, 더 많게 혹은 적게도 배치 가능합니다.
마찬가지로 어플리케이션의 추가, 삭제를 인식하여 새로 설치되는 어플리케이션의 아이콘을 자동으로 추가하고,
삭제시에는 아이콘을 제거하여 줍니다.
All Apps 에 있는 아이콘을 Long Press ( 길게 누름 ) 하면 바로 홈스크린으로 이동하면서
Drag & Drop 기능으로 Home Screen 의 어디에 붙일지 움직일 수 있습니다.

현재 All Apps 와 Home Screen 간의 전환은 버튼으로 해 놓았지만,
그림파일을 구해서 리소스만 연결하면 이쁜 아이콘으로도 바꿀 수 있습니다.
( 그림파일은 저작권 문제가 될 수 있어 버튼으로 했습니다. )

Indicator 는 현재 Text 형태로 구성하였지만,
이 역시 Resource 를 구하면 이쁜 버튼으로 만들 수 있습니다.

안드로이드 기본 배경화면( Wall Paper ) 가 그대로 Simple Launcher 에도 적용됩니다. ( 설정은 구현안됨 )
라이브 월페이퍼도 마찬가지로 적용됩니다.

홈스크린에 붙은 아이콘들의 정보와 위치정보를 기억하여
단말을 껐다 켜도, 마지막으로 지정했던 위치에 아이콘이 붙어 있습니다.

소스코드는 리펙토링이 되어 있어서, 코드의 이해도 쉽고 수정도 쉬운 편입니다.
핵심 요소요소에 한글주석을 달아 놓아, 추가적으로 이해하기가 좋을 것이라 생각됩니다.

현재는 빠른 개발을 위해서 Back 키를 눌러도 런처를 종료하게 했으며, ( onBackPressed 함수 수정하면 막을 수 있음. )
Application List 에도 올라와 있습니다. ( Manifest에서 Category Launcher 를 제거하면 됨. )
DB 저장 포인트가 onDestory 이기 때문에 위의 2개를 모두 처리하게 되면
DB 저장 포인트가 살짝 변경되어야 합니다.

모든 기능을 구현하지 않고, 몇 가지는 구현하는 방법만을 써놓은 이유는,
보통 이 자료를 그대로 가져다 쓰지 않고 개량하는 방법을 사용할텐데
다 똑같은 그림이 나오지 않도록 한 것입니다.
또, 보통 쉽게 구현할 수 있는 것들입니다. ( Simple Launcher 의 다른 구현방법과 대부분 중복 )

안드로이드 2.2 ( 프로요 ) 로 구현하였지만,
2.3 ( 진저브레드 ) 및 상위 버전에서도 적용 테스트 완료했습니다.
에뮬레이터 상에서도 잘 구동합니다.

[스크린샷 설명]

- 상단 1, 2, 3
중단 4, 5, 6
하단 7, 8

1. Home Key 를 눌렀을 때 SK Launcher 가 런처 리스트에 추가되어 있는 모습입니다.

2. 홈스크린에 아이콘 5개를 배치시킨 화면입니다.
상단에는 인디케이터가 3개가 있으며, 첫번째 페이지에 위치되어 있기 때문에 첫번째 인디케이터에
흰색으로 마킹이 되어 있습니다.
기본 배경화면 ( Wall paper ) 를 반영합니다.

3. 첫번째 페이지에서 두번째 페이지로 넘어가는 화면입니다.
두번째 페이지에 아이콘 2개가 붙어있는게 보입니다.
빨간선은 1페이지에서 2페이지로 넘어가는 중이라는걸 표시하기 위해
그림판에서 추가한 것입니다.

4. All Apps 화면입니다. Home Screen 에서 All Apps 버튼을 누르면 아래에서 위로 슬라이딩 하면서 올라옵니다.
세로 리스크 형태로 All Apps 가 구성되어 있고, 클릭시 어플리케이션이 실행됩니다.

5. 메뉴 키를 누르면 Add Cell 버튼이 나오며,
Add Cell 을 누르면 새로운 페이지가 추가됩니다.

6. Add Cell 을 2번 하여 총 5페이지가 된 화면입니다.

7. 아이콘을 Long Press 로 이동할 때, 이동할 수 없는 위치 ( 다른 아이콘이 해당 위치에 존재 )로
이동하려 하면 빨간색 mask 가 씌워집니다.

8. 배경화면( Wall Paper, 월페이퍼 ) 를 변경했을 때 적용된 모습입니다.

압축파일 내 파일목록

SKLauncher/
SKLauncher/.classpath
SKLauncher/.project
SKLauncher/AndroidManifest.xml
SKLauncher/assets/
SKLauncher/bin/
SKLauncher/bin/classes.dex
SKLauncher/bin/com/
SKLauncher/bin/com/sklee/
SKLauncher/bin/com/sklee/launcher/
SKLauncher/bin/com/sklee/launcher/AllApps$1.class
SKLauncher/bin/com/sklee/launcher/AllApps$2.class
SKLauncher/bin/com/sklee/launcher/AllApps$ApplicationAdapter.class
SKLauncher/bin/com/sklee/launcher/AllApps.class
SKLauncher/bin/com/sklee/launcher/AppIcon.class
SKLauncher/bin/com/sklee/launcher/CellLayout$1.class
SKLauncher/bin/com/sklee/launcher/CellLayout$2.class
SKLauncher/bin/com/sklee/launcher/CellLayout$3.class
SKLauncher/bin/com/sklee/launcher/CellLayout$4.class
SKLauncher/bin/com/sklee/launcher/CellLayout$5.class
SKLauncher/bin/com/sklee/launcher/CellLayout$6.class
SKLauncher/bin/com/sklee/launcher/CellLayout$CellInfo.class
SKLauncher/bin/com/sklee/launcher/CellLayout$OnDragListener.class
SKLauncher/bin/com/sklee/launcher/CellLayout.class
SKLauncher/bin/com/sklee/launcher/data/
SKLauncher/bin/com/sklee/launcher/data/AppData.class
SKLauncher/bin/com/sklee/launcher/data/CKLauncherDatabase$CKLauncherDatabaseHelper.class
SKLauncher/bin/com/sklee/launcher/data/CKLauncherDatabase.class
SKLauncher/bin/com/sklee/launcher/Indicator.class
SKLauncher/bin/com/sklee/launcher/MainPage$MoveDirection.class
SKLauncher/bin/com/sklee/launcher/MainPage.class
SKLauncher/bin/com/sklee/launcher/R$attr.class
SKLauncher/bin/com/sklee/launcher/R$drawable.class
SKLauncher/bin/com/sklee/launcher/R$id.class
SKLauncher/bin/com/sklee/launcher/R$layout.class
SKLauncher/bin/com/sklee/launcher/R$string.class
SKLauncher/bin/com/sklee/launcher/R.class
SKLauncher/bin/com/sklee/launcher/SKLauncher$1.class
SKLauncher/bin/com/sklee/launcher/SKLauncher$2.class
SKLauncher/bin/com/sklee/launcher/SKLauncher$3.class
SKLauncher/bin/com/sklee/launcher/SKLauncher.class
SKLauncher/bin/resources.ap_
SKLauncher/bin/SKLauncher.apk
SKLauncher/default.properties
SKLauncher/gen/
SKLauncher/gen/com/
SKLauncher/gen/com/sklee/
SKLauncher/gen/com/sklee/launcher/
SKLauncher/gen/com/sklee/launcher/R.java
SKLauncher/proguard.cfg
SKLauncher/res/
SKLauncher/res/drawable-hdpi/
SKLauncher/res/drawable-hdpi/icon.png
SKLauncher/res/drawable-ldpi/
SKLauncher/res/drawable-ldpi/icon.png
SKLauncher/res/drawable-mdpi/
SKLauncher/res/drawable-mdpi/icon.png
SKLauncher/res/layout/
SKLauncher/res/layout/allapps.xml
SKLauncher/res/layout/appicon.xml
SKLauncher/res/layout/main.xml
SKLauncher/res/values/
SKLauncher/res/values/strings.xml
SKLauncher/src/
SKLauncher/src/com/
SKLauncher/src/com/sklee/
SKLauncher/src/com/sklee/launcher/
SKLauncher/src/com/sklee/launcher/AllApps.java
SKLauncher/src/com/sklee/launcher/AppIcon.java
SKLauncher/src/com/sklee/launcher/CellLayout.java
SKLauncher/src/com/sklee/launcher/data/
SKLauncher/src/com/sklee/launcher/data/AppData.java
SKLauncher/src/com/sklee/launcher/data/CKLauncherDatabase.java
SKLauncher/src/com/sklee/launcher/Indicator.java
SKLauncher/src/com/sklee/launcher/MainPage.java
SKLauncher/src/com/sklee/launcher/SKLauncher.java
  • 구매평가(0)
  • 구매문의(0)
      최근 구매한 회원 학교정보 보기
      1. 최근 2주간 다운받은 회원수와 학교정보이며
         구매한 본인의 구매정보도 함께 표시됩니다.
      2. 매시 정각마다 업데이트 됩니다. (02:00 ~ 21:00)
      3. 구매자의 학교정보가 없는 경우 기타로 표시됩니다.
      4. 지식포인트 보유 시 지식포인트가 차감되며
         미보유 시 아이디당 1일 3회만 제공됩니다.
      상세하단 배너
      우수 콘텐츠 서비스 품질인증 획득
      최근 본 자료더보기
      상세우측 배너
      상세우측 배너
      [Android/안드로이드] Simple Launcher ( 런처, 홈스크린 ( Home Screen ) )
      페이지
      만족도 조사

      페이지 사용에 불편하신 점이 있으십니까?

      의견 보내기