SlideShare ist ein Scribd-Unternehmen logo
1 von 52
Downloaden Sie, um offline zu lesen
Android
 Custom
 View
Staggered View, Facebook Custom View
오픈소스를 활용한
오늘 할 이야기는..?
2 Yongbin, Cha
Android
 Custom
 View
다양한 Android Custom View 사례
Custom View Open Source 소개
Custom View - (2) Pinterest View
Custom View - (1) Facebook View
2015 Daegu SWCC Seminar
Android Custom ListView
3 Yongbin, Cha
그냥.. Android Custom ListView라고 했을때..
이런 뷰만 알고 있었다면..?
2015 Daegu SWCC Seminar
다양한 Android Custom View 사례
4 Yongbin, Cha2015 Daegu SWCC Seminar
5 Yongbin, Cha
“이미지를 카드 형식으로 보여주는 View”
2015 Daegu SWCC Seminar
다양한 Android Custom View 사례
6 Yongbin, Cha2015 Daegu SWCC Seminar
다양한 Android Custom View 사례
7 Yongbin, Cha
“직접 컨텐츠 사진을 제작하여 Custom 하게 보여주는 View”
2015 Daegu SWCC Seminar
다양한 Android Custom View 사례
8 Yongbin, Cha2015 Daegu SWCC Seminar
다양한 Android Custom View 사례
9 Yongbin, Cha
“사진의 사이즈들을 적당하게 조절하여 잘라 보여주는 View”
2015 Daegu SWCC Seminar
다양한 Android Custom View 사례
10 Yongbin, Cha2015 Daegu SWCC Seminar
다양한 Android Custom View 사례
11 Yongbin, Cha
“사진의 비율에 맞게 리스트를 구성하는 View”
2015 Daegu SWCC Seminar
다양한 Android Custom View 사례
12 Yongbin, Cha
Custom View Open Source 소개
https://github.com/etsy/AndroidStaggeredGrid
2015 Daegu SWCC Seminar
13 Yongbin, Cha
https://github.com/etsy/AndroidStaggeredGrid
2015 Daegu SWCC Seminar
“ support v7에서 StaggeredGridLayoutManager
제공으로 라이브러리 지원이 중지 ”
Custom View Open Source 소개
14 Yongbin, Cha
https://github.com/lucasr/twoway-view/
List Gird
Spannable GirdStaggered
2015 Daegu SWCC Seminar
Custom View Open Source 소개
15 Yongbin, Cha
https://github.com/lucasr/twoway-view/
List Gird
Spannable GirdStaggered
2015 Daegu SWCC Seminar
“ Recylerview를 이용한 다양한 레이아웃 관리”
Custom View Open Source 소개
16 Yongbin, Cha
Custom View - (1) Facebook View
Facebook Custom View
- 리스트 하나에 많은 사진
- 적절한 사진 비율도 유지
2015 Daegu SWCC Seminar
17 Yongbin, Cha2015 Daegu SWCC Seminar
Linear Layout
Profile Pic
Text View
Link Text
Image
Attachment
Profile Name
Timestamp
Status Message
Linear Layout
사진 수에 따라
어떻게 보여줄까?
사진 수가 하나일 경우
사진 수가 두 개일 경우
사진 수가 세 개 이상일 경우
3
Custom View - (1) Facebook View
18 Yongbin, Cha2015 Daegu SWCC Seminar
Custom View - (1) Facebook View
19 Yongbin, Cha2015 Daegu SWCC Seminar
Custom View - (1) Facebook View
20 Yongbin, Cha2015 Daegu SWCC Seminar
Custom View - (1) Facebook View
21 Yongbin, Cha2015 Daegu SWCC Seminar
Custom View - (1) Facebook View
22 Yongbin, Cha2015 Daegu SWCC Seminar
Text View
Custom View - (1) Facebook View
23 Yongbin, Cha2015 Daegu SWCC Seminar
Text View
Custom View - (1) Facebook View
24 Yongbin, Cha2015 Daegu SWCC Seminar
Text View
Custom View - (1) Facebook View
25 Yongbin, Cha2015 Daegu SWCC Seminar
Text View
Custom View - (1) Facebook View
26 Yongbin, Cha2015 Daegu SWCC Seminar
Text View
Open Source 라이브러리를 이용해 여러 사진에 대한 대응을 하자
Custom View - (1) Facebook View
27 Yongbin, Cha2015 Daegu SWCC Seminar
Text View
Custom View - (1) Facebook View
28 Yongbin, Cha2015 Daegu SWCC Seminar
Custom View - (1) Facebook View
items 를 배치할 영역을 설정
어떤 Layout Manager 를 사용할 건지 결정
29 Yongbin, Cha2015 Daegu SWCC Seminar
어떻게 작동하는 걸까?
Custom View - (1) Facebook View
30 Yongbin, Cha2015 Daegu SWCC Seminar
Custom View - (1) Facebook View
Data Model
Adapter
RecyclerView
SpannableGridLayoutManager
GridLayoutManager
StaggeredGridLayoutManager
ListLayoutManager
31 Yongbin, Cha2015 Daegu SWCC Seminar
Custom View - (1) Facebook View
32 Yongbin, Cha2015 Daegu SWCC Seminar
Custom View - (1) Facebook View
사진이 하나일 경우
33 Yongbin, Cha2015 Daegu SWCC Seminar
Custom View - (1) Facebook View
사진이 두 개일 경우
34 Yongbin, Cha2015 Daegu SWCC Seminar
Custom View - (1) Facebook View
사진이 세 개 이상일 경우
352015 Daegu SWCC Seminar Yongbin, Cha
Staggered View 대표적인 예
- 사진 비율을 유지
- 리스트 하나에 사진 하나
Custom View - (2) Pinterest View
362015 Daegu SWCC Seminar Yongbin, Cha
Android Support v7 RecyclerView
StaggeredGridLayoutManager
StaggeredGridLayoutManager?
http://developer.android.com/reference/android/
support/v7/widget/StaggeredGridLayoutManager.html
372015 Daegu SWCC Seminar Yongbin, Cha
StaggeredGridLayoutManager?
RecyclerView Layout
382015 Daegu SWCC Seminar Yongbin, Cha
StaggeredGridLayoutManager?
LinearLayoutManager GridLayoutManager StaggeredLayoutManager
392015 Daegu SWCC Seminar Yongbin, Cha
StaggeredGridLayoutManager 를 이용한
Pinterest View
Custom View - (2) Pinterest View
402015 Daegu SWCC Seminar Yongbin, Cha
Step 1 Adding the require Gradle dependencies
 build.gradle 
Custom View - (2) Pinterest View
412015 Daegu SWCC Seminar Yongbin, Cha
Step 2 Adding Layout XML for Grid item
 grid_item.xml 
Image View
Text View
Custom View - (2) Pinterest View
422015 Daegu SWCC Seminar Yongbin, Cha
Step 3 Adding Layout XML for Main Activity
 activity_main.xml 
Custom View - (2) Pinterest View
432015 Daegu SWCC Seminar Yongbin, Cha
Step 4
 PinterestAdapter.java 
Add layout for EACH item in our list.
Custom View - (2) Pinterest View
442015 Daegu SWCC Seminar Yongbin, Cha
Step 5 Create our RecyclerView’s adapter
 PinterestAdapter.java 
Custom View - (2) Pinterest View
452015 Daegu SWCC Seminar Yongbin, Cha
Step 6 Attaching the Adapter
 MainActivity.java 
Custom View - (2) Pinterest View
462015 Daegu SWCC Seminar Yongbin, Cha
Step 7 Staggered Grid Spacing Fix
 SpacesItemDecoration.java 
Custom View - (2) Pinterest View
472015 Daegu SWCC Seminar Yongbin, Cha
Step 8 Add any value you wish for SpacesItemDecoration.
That value determines the amount of spacing.
 MainActivity.java 
Custom View - (2) Pinterest View
482015 Daegu SWCC Seminar Yongbin, Cha
Step 9 Final Results
Custom View - (2) Pinterest View

Weitere ähnliche Inhalte

Andere mochten auch

Open Ldap Integration and Configuration with Lifray 6.2
Open Ldap Integration and Configuration with Lifray 6.2Open Ldap Integration and Configuration with Lifray 6.2
Open Ldap Integration and Configuration with Lifray 6.2Vinaykumar Hebballi
 
Day 5: Android User Interface [View Widgets]
Day 5: Android User Interface [View Widgets]Day 5: Android User Interface [View Widgets]
Day 5: Android User Interface [View Widgets]Ahsanul Karim
 
Android Life Cycle
Android Life CycleAndroid Life Cycle
Android Life Cyclemssaman
 
Android development - ListView & Adapter
Android development - ListView & AdapterAndroid development - ListView & Adapter
Android development - ListView & AdapterLope Emano
 
Introduction of Android View
Introduction of Android ViewIntroduction of Android View
Introduction of Android ViewCharile Tsai
 
Android life cycle
Android life cycleAndroid life cycle
Android life cycle瑋琮 林
 
Android lifecycle
Android lifecycleAndroid lifecycle
Android lifecycleKumar
 
Introduction to Listview in Android
Introduction to Listview in AndroidIntroduction to Listview in Android
Introduction to Listview in Androidtechnoguff
 
ListView and Custom ListView on Android Development [Thai]
ListView and Custom ListView on Android Development [Thai]ListView and Custom ListView on Android Development [Thai]
ListView and Custom ListView on Android Development [Thai]Somkiat Khitwongwattana
 
Android activity lifecycle
Android activity lifecycleAndroid activity lifecycle
Android activity lifecycleSoham Patel
 
Presentation on Android operating system
Presentation on Android operating systemPresentation on Android operating system
Presentation on Android operating systemSalma Begum
 

Andere mochten auch (12)

Open Ldap Integration and Configuration with Lifray 6.2
Open Ldap Integration and Configuration with Lifray 6.2Open Ldap Integration and Configuration with Lifray 6.2
Open Ldap Integration and Configuration with Lifray 6.2
 
Day 5: Android User Interface [View Widgets]
Day 5: Android User Interface [View Widgets]Day 5: Android User Interface [View Widgets]
Day 5: Android User Interface [View Widgets]
 
Json vs Gson vs Jackson
Json vs Gson vs JacksonJson vs Gson vs Jackson
Json vs Gson vs Jackson
 
Android Life Cycle
Android Life CycleAndroid Life Cycle
Android Life Cycle
 
Android development - ListView & Adapter
Android development - ListView & AdapterAndroid development - ListView & Adapter
Android development - ListView & Adapter
 
Introduction of Android View
Introduction of Android ViewIntroduction of Android View
Introduction of Android View
 
Android life cycle
Android life cycleAndroid life cycle
Android life cycle
 
Android lifecycle
Android lifecycleAndroid lifecycle
Android lifecycle
 
Introduction to Listview in Android
Introduction to Listview in AndroidIntroduction to Listview in Android
Introduction to Listview in Android
 
ListView and Custom ListView on Android Development [Thai]
ListView and Custom ListView on Android Development [Thai]ListView and Custom ListView on Android Development [Thai]
ListView and Custom ListView on Android Development [Thai]
 
Android activity lifecycle
Android activity lifecycleAndroid activity lifecycle
Android activity lifecycle
 
Presentation on Android operating system
Presentation on Android operating systemPresentation on Android operating system
Presentation on Android operating system
 

Mehr von Theodore(Yongbin) Cha

O2O 스타트업에서 한 개발자의 이야기
O2O 스타트업에서 한 개발자의 이야기O2O 스타트업에서 한 개발자의 이야기
O2O 스타트업에서 한 개발자의 이야기Theodore(Yongbin) Cha
 
[Objective-C] Objective-C의 메모리 관리 방법
[Objective-C] Objective-C의 메모리 관리 방법[Objective-C] Objective-C의 메모리 관리 방법
[Objective-C] Objective-C의 메모리 관리 방법Theodore(Yongbin) Cha
 
iOS Human Interface Guidelines 정리 (1)
iOS Human Interface Guidelines 정리 (1)iOS Human Interface Guidelines 정리 (1)
iOS Human Interface Guidelines 정리 (1)Theodore(Yongbin) Cha
 

Mehr von Theodore(Yongbin) Cha (6)

O2O 스타트업에서 한 개발자의 이야기
O2O 스타트업에서 한 개발자의 이야기O2O 스타트업에서 한 개발자의 이야기
O2O 스타트업에서 한 개발자의 이야기
 
Realm @Android
Realm @Android Realm @Android
Realm @Android
 
Reactor Proactor 성능분석
Reactor Proactor 성능분석Reactor Proactor 성능분석
Reactor Proactor 성능분석
 
NHN NEXT 개발경험프로젝트
NHN NEXT 개발경험프로젝트NHN NEXT 개발경험프로젝트
NHN NEXT 개발경험프로젝트
 
[Objective-C] Objective-C의 메모리 관리 방법
[Objective-C] Objective-C의 메모리 관리 방법[Objective-C] Objective-C의 메모리 관리 방법
[Objective-C] Objective-C의 메모리 관리 방법
 
iOS Human Interface Guidelines 정리 (1)
iOS Human Interface Guidelines 정리 (1)iOS Human Interface Guidelines 정리 (1)
iOS Human Interface Guidelines 정리 (1)
 

Android Custom view

  • 3.  View Staggered View, Facebook Custom View 오픈소스를 활용한
  • 4. 오늘 할 이야기는..? 2 Yongbin, Cha Android
  • 6.  View 다양한 Android Custom View 사례 Custom View Open Source 소개 Custom View - (2) Pinterest View Custom View - (1) Facebook View 2015 Daegu SWCC Seminar
  • 7. Android Custom ListView 3 Yongbin, Cha 그냥.. Android Custom ListView라고 했을때.. 이런 뷰만 알고 있었다면..? 2015 Daegu SWCC Seminar
  • 8. 다양한 Android Custom View 사례 4 Yongbin, Cha2015 Daegu SWCC Seminar
  • 9. 5 Yongbin, Cha “이미지를 카드 형식으로 보여주는 View” 2015 Daegu SWCC Seminar 다양한 Android Custom View 사례
  • 10. 6 Yongbin, Cha2015 Daegu SWCC Seminar 다양한 Android Custom View 사례
  • 11. 7 Yongbin, Cha “직접 컨텐츠 사진을 제작하여 Custom 하게 보여주는 View” 2015 Daegu SWCC Seminar 다양한 Android Custom View 사례
  • 12. 8 Yongbin, Cha2015 Daegu SWCC Seminar 다양한 Android Custom View 사례
  • 13. 9 Yongbin, Cha “사진의 사이즈들을 적당하게 조절하여 잘라 보여주는 View” 2015 Daegu SWCC Seminar 다양한 Android Custom View 사례
  • 14. 10 Yongbin, Cha2015 Daegu SWCC Seminar 다양한 Android Custom View 사례
  • 15. 11 Yongbin, Cha “사진의 비율에 맞게 리스트를 구성하는 View” 2015 Daegu SWCC Seminar 다양한 Android Custom View 사례
  • 16. 12 Yongbin, Cha Custom View Open Source 소개 https://github.com/etsy/AndroidStaggeredGrid 2015 Daegu SWCC Seminar
  • 17. 13 Yongbin, Cha https://github.com/etsy/AndroidStaggeredGrid 2015 Daegu SWCC Seminar “ support v7에서 StaggeredGridLayoutManager 제공으로 라이브러리 지원이 중지 ” Custom View Open Source 소개
  • 18. 14 Yongbin, Cha https://github.com/lucasr/twoway-view/ List Gird Spannable GirdStaggered 2015 Daegu SWCC Seminar Custom View Open Source 소개
  • 19. 15 Yongbin, Cha https://github.com/lucasr/twoway-view/ List Gird Spannable GirdStaggered 2015 Daegu SWCC Seminar “ Recylerview를 이용한 다양한 레이아웃 관리” Custom View Open Source 소개
  • 20. 16 Yongbin, Cha Custom View - (1) Facebook View Facebook Custom View - 리스트 하나에 많은 사진 - 적절한 사진 비율도 유지 2015 Daegu SWCC Seminar
  • 21. 17 Yongbin, Cha2015 Daegu SWCC Seminar Linear Layout Profile Pic Text View Link Text Image Attachment Profile Name Timestamp Status Message Linear Layout 사진 수에 따라 어떻게 보여줄까? 사진 수가 하나일 경우 사진 수가 두 개일 경우 사진 수가 세 개 이상일 경우 3 Custom View - (1) Facebook View
  • 22. 18 Yongbin, Cha2015 Daegu SWCC Seminar Custom View - (1) Facebook View
  • 23. 19 Yongbin, Cha2015 Daegu SWCC Seminar Custom View - (1) Facebook View
  • 24. 20 Yongbin, Cha2015 Daegu SWCC Seminar Custom View - (1) Facebook View
  • 25. 21 Yongbin, Cha2015 Daegu SWCC Seminar Custom View - (1) Facebook View
  • 26. 22 Yongbin, Cha2015 Daegu SWCC Seminar Text View Custom View - (1) Facebook View
  • 27. 23 Yongbin, Cha2015 Daegu SWCC Seminar Text View Custom View - (1) Facebook View
  • 28. 24 Yongbin, Cha2015 Daegu SWCC Seminar Text View Custom View - (1) Facebook View
  • 29. 25 Yongbin, Cha2015 Daegu SWCC Seminar Text View Custom View - (1) Facebook View
  • 30. 26 Yongbin, Cha2015 Daegu SWCC Seminar Text View Open Source 라이브러리를 이용해 여러 사진에 대한 대응을 하자 Custom View - (1) Facebook View
  • 31. 27 Yongbin, Cha2015 Daegu SWCC Seminar Text View Custom View - (1) Facebook View
  • 32. 28 Yongbin, Cha2015 Daegu SWCC Seminar Custom View - (1) Facebook View items 를 배치할 영역을 설정 어떤 Layout Manager 를 사용할 건지 결정
  • 33. 29 Yongbin, Cha2015 Daegu SWCC Seminar 어떻게 작동하는 걸까? Custom View - (1) Facebook View
  • 34. 30 Yongbin, Cha2015 Daegu SWCC Seminar Custom View - (1) Facebook View Data Model Adapter RecyclerView SpannableGridLayoutManager GridLayoutManager StaggeredGridLayoutManager ListLayoutManager
  • 35. 31 Yongbin, Cha2015 Daegu SWCC Seminar Custom View - (1) Facebook View
  • 36. 32 Yongbin, Cha2015 Daegu SWCC Seminar Custom View - (1) Facebook View 사진이 하나일 경우
  • 37. 33 Yongbin, Cha2015 Daegu SWCC Seminar Custom View - (1) Facebook View 사진이 두 개일 경우
  • 38. 34 Yongbin, Cha2015 Daegu SWCC Seminar Custom View - (1) Facebook View 사진이 세 개 이상일 경우
  • 39. 352015 Daegu SWCC Seminar Yongbin, Cha Staggered View 대표적인 예 - 사진 비율을 유지 - 리스트 하나에 사진 하나 Custom View - (2) Pinterest View
  • 40. 362015 Daegu SWCC Seminar Yongbin, Cha Android Support v7 RecyclerView StaggeredGridLayoutManager StaggeredGridLayoutManager? http://developer.android.com/reference/android/ support/v7/widget/StaggeredGridLayoutManager.html
  • 41. 372015 Daegu SWCC Seminar Yongbin, Cha StaggeredGridLayoutManager? RecyclerView Layout
  • 42. 382015 Daegu SWCC Seminar Yongbin, Cha StaggeredGridLayoutManager? LinearLayoutManager GridLayoutManager StaggeredLayoutManager
  • 43. 392015 Daegu SWCC Seminar Yongbin, Cha StaggeredGridLayoutManager 를 이용한 Pinterest View Custom View - (2) Pinterest View
  • 44. 402015 Daegu SWCC Seminar Yongbin, Cha Step 1 Adding the require Gradle dependencies build.gradle Custom View - (2) Pinterest View
  • 45. 412015 Daegu SWCC Seminar Yongbin, Cha Step 2 Adding Layout XML for Grid item grid_item.xml Image View Text View Custom View - (2) Pinterest View
  • 46. 422015 Daegu SWCC Seminar Yongbin, Cha Step 3 Adding Layout XML for Main Activity activity_main.xml Custom View - (2) Pinterest View
  • 47. 432015 Daegu SWCC Seminar Yongbin, Cha Step 4 PinterestAdapter.java Add layout for EACH item in our list. Custom View - (2) Pinterest View
  • 48. 442015 Daegu SWCC Seminar Yongbin, Cha Step 5 Create our RecyclerView’s adapter PinterestAdapter.java Custom View - (2) Pinterest View
  • 49. 452015 Daegu SWCC Seminar Yongbin, Cha Step 6 Attaching the Adapter MainActivity.java Custom View - (2) Pinterest View
  • 50. 462015 Daegu SWCC Seminar Yongbin, Cha Step 7 Staggered Grid Spacing Fix SpacesItemDecoration.java Custom View - (2) Pinterest View
  • 51. 472015 Daegu SWCC Seminar Yongbin, Cha Step 8 Add any value you wish for SpacesItemDecoration. That value determines the amount of spacing. MainActivity.java Custom View - (2) Pinterest View
  • 52. 482015 Daegu SWCC Seminar Yongbin, Cha Step 9 Final Results Custom View - (2) Pinterest View
  • 53. Custom View - (2) Pinterest View 492015 Daegu SWCC Seminar Yongbin, Cha Step 9 Final Results DEMO
  • 54. 50 Yongbin, Cha https://github.com/ChaYongbin/customview 코드 전체를 보고 알고 싶다면..? 2015 Daegu SWCC Seminar Custom View - (2) Pinterest View
  • 55. 512015 Daegu SWCC Seminar Yongbin, Cha Android Custom View - END 다양한 Android Custom View 사례 소개 Custom ListView Open Source 소개 Facebook Custom View 만들어 보기 StaggeredGrid View (Pinterest View) 만들어 보기 지금까지 에 대해서 알아보았습니다.
  • 56. 522015 Daegu SWCC Seminar Yongbin, Cha 감사합니다~ Android Custom View - END