일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 한달독서
- 한달브런치북만들기
- 목적 중심 리더십
- 캐치마인드
- 한단어의힘
- 자취필수템
- 한달어스
- 목적중심리더십
- 베드테이블
- 아비투스
- 소프시스 밤부 좌식 엑슬 테이블
- 지지않는다는말
- 북한살둘레길
- 끝말잇기
- 프래그먼트
- 베드트레이
- T자형인재
- 1일1커밋
- 함수형 프로그래밍
- 어떻게 나답게 살 것인가
- 리얼하다
- 면접
- 재택근무
- 테트리스
- 슬기로운 온라인 게임
- 안드로이드
- 좌식테이블
- 소프시스
- 커스텀린트
- 브런치작가되기
- Today
- Total
목록안드로이드 (164)
정상에서 IT를 외치다
안드로이드 제작을 하다 보면 디바이스의 높이와 넓이 값이 필요할 때가 있습니다. 아래 코드는 resource 에 접근 가능 할 때 디바이스의 높이와 넓이를 Pixel 값으로 받아 오는 코드입니다. val deviceHeight = resources.displayMetrics.heightPixels val deviceWidth = resources.displayMetrics.widthPixels각 각 resources 로 부터 높이와 넓이 값을 가져올 수 있습니다. 아래는 화면 상단에 시간과 배터리, 와이파이 정보를 보여는 Status bar 의 높이를 가져오는 코드입니다.var result = 0 val resourceId = resources.getIdentifier("status_bar_height"..
안드로이드 버전 역사 안드로이드 4.4 킷캣 - 2013년 10월 31일 발표 - api 19 안드로이드 5.0 롤리팝 - 2014년 10월 16일 발표 - api 21,22 안드로이드 6.0 마시멜로 - 2015년 5월 28일 발표 - api 23 안드로이드 7.0 누가 - 2016년 8월 22일 발표 - api 24,25 안드로이드 8.0 오레오 - 2017년 8월 21일 발표 - api 26,27 안드로이드 9,0 파이 - 2018년 8월 6일 발표 - api 28 해상도와 DP 관계 해상도 1280 * 720 - 320dpi 1920 * 1080 - 480dpi 2960 * 1440 - 640dpi 기기 별 해상도 사이트 dp 와 px 관계 dp (Dots Per Inch) : 1인치 (2.54c..
안녕하세요. 블랙진 입니다. Android Architecture Component 중 Room 라이브러리 사용에 관해 포스팅하겠습니다. ORM? Room 를 알아보기 전에 ORM 에 대한 개념을 살펴보겠습니다. ORM이란 Object Relational Mapping 으로 데이터베이스와 객체 지향 프로그래밍 언어간의 호환되지 않는 데이터를 변환하는 프로그래밍 기법으로 DB 테이블과 매핑되는 객체를 만들고 그 객체에서 DB를 관리하는 것입니다. Room? 안드로이드 아키텍처 컴포넌트 룸 라이브러리는 안드로이드 앱에서 SQLite 데이터베이스를 쉽고 편리하게 사용할 수 있도록 하는 기능입니다. 이를 다시 정리하면 SQLite 위에 만든 구글의 새로운 ORM 이라고 할 수 있습니다. 룸 라이브러리는 엔티티(..
안녕하세요. 블랙진입니다. 이번에는 RecyclerView 에서 StickyHeader 를 만드는 법에 대해 포스팅 하겠습니다. StickyHeader? 리스트 중 하나의 아이템을 상단에 고정 시키는 것을 의미합니다. 아래의 화면과 같이 리스트를 스크롤 할 때 중간에 있던 아이템이 상단에 고정되는 것을 확인하실 수 있습니다. 저의 Github 예제 중 MyMaterialDesign 에 적용해 보았는데요. 제가 사용한 StickyHeader 라이브러리는 아래 링크입니다. How to Use StickyHeader in RecyclerView 라이브러리 사용법은 위 링크를 통해 보시면 잘 나와있습니다. 아래 게시글은 MyMaterialDesign 을 수정하여 아래 gif 와 같은 효과를 나타내는 방법으로 제..
안녕하세요. 블랙진입니다. 이번에 Google 2018 i/o 에서 더 빠른 Android 앱 개발을 위한 차세대 컴포넌트, 도구 및 아키텍처 지침인 Android Jetpack 을 소개했습니다. 먼저 안드로이드 제트팩에 관한 개발 사이트 링크는 아래와 같습니다. 안드로이드 제트팩 안드로이드 제트팩 소개 영상 안드로이드 제트팩은 Foundation, Architecture, Behavior, Ui 4개의 구성으로 나뉘어집니다. 먼저 Architecture 는 다시 Data Binding, Lifecycles, LiveData, Navigation, Paging, Room, ViewModel, WorkManger 이렇게 8가지로 세분화 할 수 있습니다. 앞으로는 이 Architecture 에 관해 포스팅을..
안녕하세요. 블랙진입니다. 이번에는 탭 레이아웃의 모든것! 포스팅 해보고자 합니다. 짝! 짝! 짝! 짝!먼저 아래 이미지는 구현 결과물 입니다. 시작하기에 앞서 이전 포스팅의 "뷰페이저 만들기" 예제 파일이 필요합니다.(A~E Fragment 를 가지는 뷰페이저 만들기 입니다.)뷰페이저에 대해 공부하실 분은 위 예제를 먼저 따라해 주시고 아닌 분은 MyViewPager 에서 예제 파일을 다운받아주세요. 자 그럼 머테리얼 디자인중 하나인 탭 레이아웃의 모든걸 배워보겠습니다. > ,. < //(모든 코드는 kotlin 으로 작업하였습니다.) 1. APP 단계의 build.gradle 에 아래 코드를 추가해 주세요. build.gradleimplementation 'com.android.support:desi..
안녕하세요 블랙진 입니다. 한국에서는 카카오톡 앱을 많이 사용하는데 이는 4개의 ViewPager 로 구성되어 있습니다. 그렇지만 다른 화면으로 스와이프 했을 때, 해당 화면이 보여지고 나서 데이터를 서버로 부터 받아오는 것을 확인 할 수 있습니다. 이렇게 해당 뷰가 보여졌을 때 반응 할 수 있게 도와주는 함수가 setUserVisibleHint 입니다. ViewPager 설정할 AFragment 가 아래와 같이 있습니다. class AFragment : Fragment() { ... override fun setUserVisibleHint(isVisibleToUser: Boolean) { super.setUserVisibleHint(isVisibleToUser) Log.v("AFragment", "se..
안녕하세요. 블랙진입니다. 이번에는 FragmentPagerAdapter 와 FragmentStatePagerAdapter 의 차이에 대해 포스팅 해보겠습니다. 설명하기 앞서 ViewPager 를 만드는 법에 대해 포스팅한게 있습니다. ViewPager 동작에 대해 알고 이 포스팅을 보시면 이해하는데 훨씬 도움이 될 것 같습니다. ~! FragmentPagerAdapter 와 FragmentStatePagerAdapter 의 차이 참고자료1, 참고자료2 - FragmentPagerAdapter 에서는 프래그먼트 개 수가 정해진 화면에 사용하면 좋다. 프래그먼트 매니저에서 한 번 생성된 프래그먼트의 인스턴스를 제거하지 않고 연결된 View 만 제거합니다. - FragmentStatePagerAdapter ..
안녕하세요! 블랙진입니다. 안드로이드 매니페스트 에서 launchMode 를 설정에 따른 화면 Task 관리 대해 공부한 걸 적어보고자 합니다. 1. SingleTask 를 사용해서 중간에 띄어져 있는 화면을 모두 지우고 해당 화면을 재사용 하자 화면은 왼쪽과 같이 A ~ D Activity 로 구성되어 있고 모든 화면의 XML은 아래과 동일합니다. Main, A~D Activity 의 모습 실험 1 A_Activity 만 launchMode 에 singleTask 를 설정했습니다. Main -> A -> A -> A 처음 A 화면만 onCreate 가 되고 그 뒤부터는 onNewIntent 로 시작합니다. 이렇게 SingleTask 일 때는 한개의 화면만 생성되게 됩니다. Main -> A 이렇게 2개..
ConstraintLayout 에서 배리어 사용법에 대해 포스팅하겠습니다. ConstraintLayout 1. 체인ConstraintLayout 2. 가이드라인 ConstraintLayout 3. 배리어 배리어는 다국어 지원에 유용하게 사용하실 수 있습니다. 예를 들어 세로로 2개의 텍스트뷰가 있습니다. 이 둘의 길이가 다를 때 더 긴쪽의 텍스트뷰 오른쪽에 뷰를 배치하고 싶을때 사용하시면 됩니다. 배리어는 위와 같이 설정하시면 됩니다. 여기서 barrierDirection 값을 통해 왼쪽, 오른쪽의 기준을 설정하실 수 있습니다. constratin_referenced_ids 에 기준 시킬 뷰들의 아이디를 콤마( , )로 구분하여 나열하면 됩니다. 전체 코드는 다음과 같습니다. tv1 이 더 길때 tv2 ..