Top Banner
Android Custom View Staggered View, Facebook Custom View 오픈소스를 활용한
52

Android Custom view

Apr 14, 2017

Download

Mobile

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Android Custom view

Android����������� ������������������  Custom����������� ������������������  ViewStaggered View, Facebook Custom View

오픈소스를 활용한

Page 2: Android 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

Page 3: Android Custom view

Android Custom ListView

3 Yongbin, Cha

그냥.. Android Custom ListView라고 했을때..

이런 뷰만 알고 있었다면..?

2015 Daegu SWCC Seminar

Page 4: Android Custom view

다양한 Android Custom View 사례

4 Yongbin, Cha2015 Daegu SWCC Seminar

Page 5: Android Custom view

5 Yongbin, Cha

“이미지를 카드 형식으로 보여주는 View”

2015 Daegu SWCC Seminar

다양한 Android Custom View 사례

Page 6: Android Custom view

6 Yongbin, Cha2015 Daegu SWCC Seminar

다양한 Android Custom View 사례

Page 7: Android Custom view

7 Yongbin, Cha

“직접 컨텐츠 사진을 제작하여 Custom 하게 보여주는 View”

2015 Daegu SWCC Seminar

다양한 Android Custom View 사례

Page 8: Android Custom view

8 Yongbin, Cha2015 Daegu SWCC Seminar

다양한 Android Custom View 사례

Page 9: Android Custom view

9 Yongbin, Cha

“사진의 사이즈들을 적당하게 조절하여 잘라 보여주는 View”

2015 Daegu SWCC Seminar

다양한 Android Custom View 사례

Page 10: Android Custom view

10 Yongbin, Cha2015 Daegu SWCC Seminar

다양한 Android Custom View 사례

Page 11: Android Custom view

11 Yongbin, Cha

“사진의 비율에 맞게 리스트를 구성하는 View”

2015 Daegu SWCC Seminar

다양한 Android Custom View 사례

Page 12: Android Custom view

12 Yongbin, Cha

Custom View Open Source 소개

https://github.com/etsy/AndroidStaggeredGrid

2015 Daegu SWCC Seminar

Page 13: Android Custom view

13 Yongbin, Cha

https://github.com/etsy/AndroidStaggeredGrid

2015 Daegu SWCC Seminar

“ support v7에서 StaggeredGridLayoutManager 제공으로 라이브러리 지원이 중지 ”

Custom View Open Source 소개

Page 14: Android Custom view

14 Yongbin, Cha

https://github.com/lucasr/twoway-view/

List Gird

Spannable GirdStaggered

2015 Daegu SWCC Seminar

Custom View Open Source 소개

Page 15: Android Custom view

15 Yongbin, Cha

https://github.com/lucasr/twoway-view/

List Gird

Spannable GirdStaggered

2015 Daegu SWCC Seminar

“ Recylerview를 이용한 다양한 레이아웃 관리”

Custom View Open Source 소개

Page 16: Android Custom view

16 Yongbin, Cha

Custom View - (1) Facebook View

Facebook Custom View

- 리스트 하나에 많은 사진

- 적절한 사진 비율도 유지

2015 Daegu SWCC Seminar

Page 17: Android Custom view

17 Yongbin, Cha2015 Daegu SWCC Seminar

Linear Layout

Profile PicText View

Link Text

Image Attachment

Profile Name

Timestamp

Status Message

Linear Layout

사진 수에 따라

어떻게 보여줄까?

사진 수가 하나일 경우

사진 수가 두 개일 경우

사진 수가 세 개 이상일 경우

3

Custom View - (1) Facebook View

Page 18: Android Custom view

18 Yongbin, Cha2015 Daegu SWCC Seminar

Custom View - (1) Facebook View

Page 19: Android Custom view

19 Yongbin, Cha2015 Daegu SWCC Seminar

Custom View - (1) Facebook View

Page 20: Android Custom view

20 Yongbin, Cha2015 Daegu SWCC Seminar

Custom View - (1) Facebook View

Page 21: Android Custom view

21 Yongbin, Cha2015 Daegu SWCC Seminar

Custom View - (1) Facebook View

Page 22: Android Custom view

22 Yongbin, Cha2015 Daegu SWCC Seminar

Text View

Custom View - (1) Facebook View

Page 23: Android Custom view

23 Yongbin, Cha2015 Daegu SWCC Seminar

Text View

Custom View - (1) Facebook View

Page 24: Android Custom view

24 Yongbin, Cha2015 Daegu SWCC Seminar

Text View

Custom View - (1) Facebook View

Page 25: Android Custom view

25 Yongbin, Cha2015 Daegu SWCC Seminar

Text View

Custom View - (1) Facebook View

Page 26: Android Custom view

26 Yongbin, Cha2015 Daegu SWCC Seminar

Text View

Open Source 라이브러리를 이용해 여러 사진에 대한 대응을 하자

Custom View - (1) Facebook View

Page 27: Android Custom view

27 Yongbin, Cha2015 Daegu SWCC Seminar

Text View

Custom View - (1) Facebook View

Page 28: Android Custom view

28 Yongbin, Cha2015 Daegu SWCC Seminar

Custom View - (1) Facebook View

items 를 배치할 영역을 설정

어떤 Layout Manager 를 사용할 건지 결정

Page 29: Android Custom view

29 Yongbin, Cha2015 Daegu SWCC Seminar

어떻게 작동하는 걸까?

Custom View - (1) Facebook View

Page 30: Android Custom view

30 Yongbin, Cha2015 Daegu SWCC Seminar

Custom View - (1) Facebook View

Data Model

Adapter

RecyclerView

SpannableGridLayoutManager

GridLayoutManager

StaggeredGridLayoutManager

ListLayoutManager

Page 31: Android Custom view

31 Yongbin, Cha2015 Daegu SWCC Seminar

Custom View - (1) Facebook View

Page 32: Android Custom view

32 Yongbin, Cha2015 Daegu SWCC Seminar

Custom View - (1) Facebook View

사진이 하나일 경우

Page 33: Android Custom view

33 Yongbin, Cha2015 Daegu SWCC Seminar

Custom View - (1) Facebook View

사진이 두 개일 경우

Page 34: Android Custom view

34 Yongbin, Cha2015 Daegu SWCC Seminar

Custom View - (1) Facebook View

사진이 세 개 이상일 경우

Page 35: Android Custom view

352015 Daegu SWCC Seminar Yongbin, Cha

Staggered View 대표적인 예

- 사진 비율을 유지

- 리스트 하나에 사진 하나

Custom View - (2) Pinterest View

Page 36: Android Custom view

362015 Daegu SWCC Seminar Yongbin, Cha

Android Support v7 RecyclerView

StaggeredGridLayoutManager

StaggeredGridLayoutManager?

http://developer.android.com/reference/android/support/v7/widget/StaggeredGridLayoutManager.html

Page 37: Android Custom view

372015 Daegu SWCC Seminar Yongbin, Cha

StaggeredGridLayoutManager?

RecyclerView Layout

Page 38: Android Custom view

382015 Daegu SWCC Seminar Yongbin, Cha

StaggeredGridLayoutManager?

LinearLayoutManager GridLayoutManager StaggeredLayoutManager

Page 39: Android Custom view

392015 Daegu SWCC Seminar Yongbin, Cha

StaggeredGridLayoutManager 를 이용한

Pinterest View

Custom View - (2) Pinterest View

Page 40: Android Custom view

402015 Daegu SWCC Seminar Yongbin, Cha

Step 1 Adding the require Gradle dependencies

< build.gradle >

Custom View - (2) Pinterest View

Page 41: Android Custom 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

Page 42: Android Custom view

422015 Daegu SWCC Seminar Yongbin, Cha

Step 3 Adding Layout XML for Main Activity

< activity_main.xml >

Custom View - (2) Pinterest View

Page 43: Android Custom view

432015 Daegu SWCC Seminar Yongbin, Cha

Step 4

< PinterestAdapter.java >

Add layout for EACH item in our list.

Custom View - (2) Pinterest View

Page 44: Android Custom view

442015 Daegu SWCC Seminar Yongbin, Cha

Step 5 Create our RecyclerView’s adapter

< PinterestAdapter.java >

Custom View - (2) Pinterest View

Page 45: Android Custom view

452015 Daegu SWCC Seminar Yongbin, Cha

Step 6 Attaching the Adapter

< MainActivity.java >

Custom View - (2) Pinterest View

Page 46: Android Custom view

462015 Daegu SWCC Seminar Yongbin, Cha

Step 7 Staggered Grid Spacing Fix

< SpacesItemDecoration.java >

Custom View - (2) Pinterest View

Page 47: Android Custom 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

Page 48: Android Custom view

482015 Daegu SWCC Seminar Yongbin, Cha

Step 9 Final Results

Custom View - (2) Pinterest View

Page 49: Android Custom view

Custom View - (2) Pinterest View

492015 Daegu SWCC Seminar Yongbin, Cha

Step 9 Final Results

DEMO

Page 50: Android Custom view

50 Yongbin, Cha

https://github.com/ChaYongbin/customview

코드 전체를 보고 알고 싶다면..?

2015 Daegu SWCC Seminar

Custom View - (2) Pinterest View

Page 51: Android Custom view

512015 Daegu SWCC Seminar Yongbin, Cha

Android Custom View - END

다양한 Android Custom View 사례 소개

Custom ListView Open Source 소개

Facebook Custom View 만들어 보기

StaggeredGrid View (Pinterest View) 만들어 보기

지금까지

에 대해서 알아보았습니다.

Page 52: Android Custom view

522015 Daegu SWCC Seminar Yongbin, Cha

감사합니다~

Android Custom View - END