[Android/안드로이드] Floating Image Live Wallpaper ( 떠다니는 그림 라이브 월페이퍼 )
*창*
다운로드
장바구니
소개글
앱 이름 : Floating Image Live Wallpaper이 앱은 LiveWallpaper 로 Image 들이 배경 위에 퐁퐁 날아다니는 라이브 월페이퍼입니다. 현재 날아다니는 이미지는 기본적으로 하트로 하였고, 배경화면은 아이유를 넣어 놨는데, 이는 drawable의 이미지만 교체해주시면 쉽게 변경 가능합니다.
소스는 Refactoring 이 되어 있고, 중요한 부분에 모두 주석을 달아 놓았기 때문에, 안드로이드를 조금만 해보셨다면, 소스코드를 이해하는데 무리가 없을 것이라고 생각합니다.
기본적으로 하트 이미지는 사용자가 터치를 하는곳에서부터 랜덤한 방향으로 움직이며 등장합니다. 일정 시간이 지나면 생성되었던 하트는 사라지게 됩니다.
유저가 터치를 하지 않아도, 자동으로 일정시간마다 하트가 생겨나게 되어 있습니다. 항상 몇개의 하트는 화면에 유지가 되는 것이지요.
하트의 생성 갯수도 정해져있습니다. 너무 하트가 빠글빠글하게 존재하면 안 되기 때문에 제약을 주었습니다.
이 모든 설정을 setting 을 통해서 할 수 있게 해놓았습니다.
스크린샷의 좌상단은, 다른 위젯들과 함께 있는 live wallpaper 입니다. 배경에 아이유가 있고, 다른 위젯의 뒷편으로 하트가 계속 그려지고 있습니다. 월페이퍼이기 때문에 아이콘이나 위젯을 방해하지 않습니다.
우상단은 아무 것도 없는 화면입니다. 이쁜 아이유와 하트들이 뿅뿅 날아다니고 있네요.
좌상단은 라이브 월페이퍼 선택화면에 들어가 있는 FloatingImageLiveWallpaper 를 보여줍니다. 좋은 이미지를 구하지 못해 우선 하트모양을 그대로 썼는데, 다른 것들에 비해서 좀 허접하지만, 이 아이콘도 쉽게 바꿔줄 수 있습니다.
좌하단은 Setting 화면입니다. 이미지가 존재할 수 있는 최대 이미지 갯수와, 이미지가 존재하는 시간, 이미지의 움직이는 속도, 이미지가 얼마나 자주 그려져야 하는지, 그리고 자동으로 생성되는 이미지가 얼마나 자주 생성되야 하는가를 설정할 수 있습니다.
해당 앱은 SDK 2.2 프로요( Froyo ) 버전으로 만들었지만, 당연히 SDK 2.3 진저브레드 ( GingerBread ) 와도 호환이 되며, SDK 4.0 아이스크림 샌드위치 ( ICS ) 에서도 정상 작동 확인을 하였습니다.
참고로 이 자료는 소스코드를 파는 것이기 때문에, 상용으로 사용할 경우 아이유 이미지는 다른 이미지도 바꿔주세요 :)
이클립스에서 프로그램을 로드하신 후에는 F5를 통해 프로젝트를 refresh 해주시고,
[Project] - [Clean] 을 통해 rebuild 작업을 거쳐주셔야 R 관련된 에러가 사라져 정상적으로 이용하실 수 있습니다.
컴파일 실행환경
Android SDK압축파일 내 파일목록
.classpath
.project
.settings/
.settings/org.eclipse.jdt.core.prefs
AndroidManifest.xml
assets/
bin/
bin/classes/
bin/classes/com/
bin/classes/com/sklee/
bin/classes/com/sklee/floatingimagelivewallpaper/
bin/classes/com/sklee/floatingimagelivewallpaper/FloatingImageLiveWallpaperService$DirectionalTimeoutPoint.class
bin/classes/com/sklee/floatingimagelivewallpaper/FloatingImageLiveWallpaperService$FloatingFaceEngine$1.class
bin/classes/com/sklee/floatingimagelivewallpaper/FloatingImageLiveWallpaperService$FloatingFaceEngine$2.class
bin/classes/com/sklee/floatingimagelivewallpaper/FloatingImageLiveWallpaperService$FloatingFaceEngine.class
bin/classes/com/sklee/floatingimagelivewallpaper/FloatingImageLiveWallpaperService.class
bin/classes/com/sklee/floatingimagelivewallpaper/FloatingImageSettingActivity.class
bin/classes/com/sklee/floatingimagelivewallpaper/R$attr.class
bin/classes/com/sklee/floatingimagelivewallpaper/R$drawable.class
bin/classes/com/sklee/floatingimagelivewallpaper/R$string.class
bin/classes/com/sklee/floatingimagelivewallpaper/R$xml.class
bin/classes/com/sklee/floatingimagelivewallpaper/R.class
bin/classes/com/sklee/floatingimagelivewallpaper/Utils.class
bin/classes.dex
bin/FloatingFaceLiveWallpaper.apk
bin/FloatingImageLiveWallpaper.apk
bin/res/
bin/res/drawable-hdpi/
bin/res/drawable-ldpi/
bin/res/drawable-mdpi/
bin/resources.ap_
gen/
gen/com/
gen/com/sklee/
gen/com/sklee/floatingimagelivewallpaper/
gen/com/sklee/floatingimagelivewallpaper/R.java
proguard.cfg
project.properties
res/
res/drawable-hdpi/
res/drawable-ldpi/
res/drawable-mdpi/
res/drawable-mdpi/heart.gif
res/drawable-mdpi/iu.jpg
res/layout/
res/values/
res/values/strings.xml
res/xml/
res/xml/floatingface.xml
res/xml/pref_activity.xml
src/
src/com/
src/com/sklee/
src/com/sklee/floatingimagelivewallpaper/
src/com/sklee/floatingimagelivewallpaper/FloatingImageLiveWallpaperService.java
src/com/sklee/floatingimagelivewallpaper/FloatingImageSettingActivity.java
src/com/sklee/floatingimagelivewallpaper/Utils.java
.project
.settings/
.settings/org.eclipse.jdt.core.prefs
AndroidManifest.xml
assets/
bin/
bin/classes/
bin/classes/com/
bin/classes/com/sklee/
bin/classes/com/sklee/floatingimagelivewallpaper/
bin/classes/com/sklee/floatingimagelivewallpaper/FloatingImageLiveWallpaperService$DirectionalTimeoutPoint.class
bin/classes/com/sklee/floatingimagelivewallpaper/FloatingImageLiveWallpaperService$FloatingFaceEngine$1.class
bin/classes/com/sklee/floatingimagelivewallpaper/FloatingImageLiveWallpaperService$FloatingFaceEngine$2.class
bin/classes/com/sklee/floatingimagelivewallpaper/FloatingImageLiveWallpaperService$FloatingFaceEngine.class
bin/classes/com/sklee/floatingimagelivewallpaper/FloatingImageLiveWallpaperService.class
bin/classes/com/sklee/floatingimagelivewallpaper/FloatingImageSettingActivity.class
bin/classes/com/sklee/floatingimagelivewallpaper/R$attr.class
bin/classes/com/sklee/floatingimagelivewallpaper/R$drawable.class
bin/classes/com/sklee/floatingimagelivewallpaper/R$string.class
bin/classes/com/sklee/floatingimagelivewallpaper/R$xml.class
bin/classes/com/sklee/floatingimagelivewallpaper/R.class
bin/classes/com/sklee/floatingimagelivewallpaper/Utils.class
bin/classes.dex
bin/FloatingFaceLiveWallpaper.apk
bin/FloatingImageLiveWallpaper.apk
bin/res/
bin/res/drawable-hdpi/
bin/res/drawable-ldpi/
bin/res/drawable-mdpi/
bin/resources.ap_
gen/
gen/com/
gen/com/sklee/
gen/com/sklee/floatingimagelivewallpaper/
gen/com/sklee/floatingimagelivewallpaper/R.java
proguard.cfg
project.properties
res/
res/drawable-hdpi/
res/drawable-ldpi/
res/drawable-mdpi/
res/drawable-mdpi/heart.gif
res/drawable-mdpi/iu.jpg
res/layout/
res/values/
res/values/strings.xml
res/xml/
res/xml/floatingface.xml
res/xml/pref_activity.xml
src/
src/com/
src/com/sklee/
src/com/sklee/floatingimagelivewallpaper/
src/com/sklee/floatingimagelivewallpaper/FloatingImageLiveWallpaperService.java
src/com/sklee/floatingimagelivewallpaper/FloatingImageSettingActivity.java
src/com/sklee/floatingimagelivewallpaper/Utils.java