[Android/Kotlin] DataBinding 데이터 바인딩 포스팅 썸네일 이미지

Android

[Android/Kotlin] DataBinding 데이터 바인딩

1. 요약 이번 글에서는 DataBinding의 관하여 기술한다. DataBinding은 ViewBinding처럼 Layout의 오브젝트들의 접근 가능할 뿐만 아니라 Layout서 변수를 선언하는 등 ViewBinding과 달리 양방향 통신이 가능하다. 따라서 단순하게 Layout의 오브젝트의 접근하고자 하는 것이면 ViewBinding을 사용하면 된다. [Android/Kotlin] ViewBinding 뷰 오브젝트 접근 (findViewById 대체) 1. 요약 이 글에서는 ViewBinding을 통하여 간편하게 View Object들의 접근하여 Click Event를 설정하거나 TextView의 Text를 변경하는 방법을 기술한다. 이를 위해서는 우선 App 수준 gradle 파일에서 ViewBin..

2022.08.21 게시됨

[Android/Kotlin] TabLayout Custom Style - 탭 스타일 포스팅 썸네일 이미지

Android

[Android/Kotlin] TabLayout Custom Style - 탭 스타일

1. 요약 이번 글에서는 TabLayout에서 각 Tab 메뉴의 스타일을 다양하게 정의하고 적용하는 방법에 관하여 기술한다. 기본적으로 TabLayout과 ViewPager2를 이용하여 레이아웃을 구성하는 방법은 아래 이전에 작성하였던 글을 참고하면 된다. [Android/Kotlin] TabLayout + ViewPager2 - Slide하여 화면 전환 1. 요약 이번 글에서는 TabLayout과 ViewPager2를 사용하여서 Tab 할 수 있는 메뉴가 있으며 이를 클릭하면 화면이 전환되며, 마찬가지로 좌우로 Slide 하였을 시 화면이 전환되도록 구성하는 방법에 관 notepad96.tistory.com 해당 예시에서는 사각형 모양에 박스와 Chip Button 모양처럼 모서리가 둥근 모양을 정의하..

2022.08.20 게시됨

[Android/Kotlin/Tip] ViewPager2 Circular Scroll - 끝에서 처음으로 이동 포스팅 썸네일 이미지

Android/TIP

[Android/Kotlin/Tip] ViewPager2 Circular Scroll - 끝에서 처음으로 이동

1. 설명 이번 글에서는 ViewPager를 사용할 때 처음에서 끝으로, 끝에서 처음으로 순환하는 구조를 갖도록 하는 방법에 대하여 기술한다. 기존 ViewPager는 아래 그림처럼 구성되어 있어 A 페이지서 B 페이지로 B 페이지서 C 페이지로 양방향 이동이 가능하였다. 하지만 이와 같은 구조에서는 A 페이지와 C 페이지 간 양방향 이동이 불가하다는 제약 사항이 발생한다. 따라서 이를 해결하기 위해서는 아래와 같은 구조로 변경해주면 각 페이지들을 순환하는 구조로 만들어 줄 수 있다. 그래서 이를 Circular Scroll이나 Infinite Scroll라고 명칭 하는 것 같다. 이번 글에서는 Circular Scrolling 기능을 구현하기 위한 내용으로서 기본적으로 Tab Layout과 ViewPa..

2022.08.19 게시됨

[Android/Kotlin] TabLayout + ViewPager2 - Slide하여 화면 전환 포스팅 썸네일 이미지

Android

[Android/Kotlin] TabLayout + ViewPager2 - Slide하여 화면 전환

1. 요약 이번 글에서는 TabLayout과 ViewPager2를 사용하여서 Tab 할 수 있는 메뉴가 있으며 이를 클릭하면 화면이 전환되며, 마찬가지로 좌우로 Slide 하였을 시 화면이 전환되도록 구성하는 방법에 관하여 알아본다. 이를 위해서는 ViewPager의 Adapter와 각 Page를 구성하는 Fragment를 구현하여야 한다. Tab 메뉴에서는 Text만을 사용할 수도 있으며 위 결과처럼 Text + Icon을 같이 사용하여 표현할 수 있다. 추가적으로 메뉴를 클릭하였을 경우 Text, Icon의 Color와 같이 스타일을 변경하기 위한 속성들과 방법에 대해서도 알아본다. 2. 레이아웃 2-1. activity_main.xml 메인 레이아웃으로서 ViewPager와 TabLayout으로 구..

2022.08.18 게시됨

[Android/Kotlin] ViewBinding 뷰 오브젝트 접근 (findViewById 대체) 포스팅 썸네일 이미지

Android

[Android/Kotlin] ViewBinding 뷰 오브젝트 접근 (findViewById 대체)

1. 요약 이 글에서는 ViewBinding을 통하여 간편하게 View Object들의 접근하여 Click Event를 설정하거나 TextView의 Text를 변경하는 방법을 기술한다. 이를 위해서는 우선 App 수준 gradle 파일에서 ViewBinding을 사용하도록 설정해주어야 한다. 이는 기존 findViewById 혹은 deprecated 된 kotlin extensions plugin을 사용하여서 View에 접근하였던 방법들과 비교하여 View의 접근 속도가 느리거나 null-safe하지 못하는 단점들을 대체할 수 있는 좋은 방안이다. 2. 레이아웃 2-1. activity_main.xml 메인 레이아웃으로 View Object들의 접근하여 클릭 이벤트를 설정하거나 텍스트 값을 변경되는지 확..

2022.08.17 게시됨

[Android/Kotlin] Recyclerview List Animation(리스트 애니메이션) 포스팅 썸네일 이미지

Android

[Android/Kotlin] Recyclerview List Animation(리스트 애니메이션)

1. 요약 이 글에서는 Recyclerview 리스트의 Item들이 Load 될 때 Animation을 설정하는 방법에 관하여 기술한다. 이를 위해서 아래 2가지 내용을 정의할 필요가 있다. RecyclerView 리스트를 나타내기 위한 Adapter 정의 Item의 적용할 Animation 정의 및 적용 Animation 경우 drawable 아래 anim이라는 Resource Directory를 생성한 후 그 안에 Animation 파일을 생성한 후 정의하며 List Adapter서 Layout의 animation 값을 지정함으로 List Item Animation을 구현할 것이다. 2. 레이아웃 2-1. activity_main.xml 메인 레이아웃으로서 1개의 Recyclerview로 구성된다. ..

2022.08.16 게시됨

[Android/Kotlin] 카메라로 찍은 후 Image 불러오기 (Image 파일 저장) 포스팅 썸네일 이미지

Android

[Android/Kotlin] 카메라로 찍은 후 Image 불러오기 (Image 파일 저장)

1. 요약 이 글에서는 카메라를 실행하여 사진을 찍은 후 이미지를 불러와 나타내는 방법에 관하여 기술한다. 이를 위해서는 크게 아래의 3가지 기능을 구현할 필요가 있다. 카메라 실행 권한 및 파일 Read/Write 할 수 있는 권한을 얻기 위하여 사용자에게 요청 카메라를 실행하고 사진을 찍은 후 해당 Image를 저장 기기의 저장되어 있는 Image 파일의 접근하여 Image 불러오기 위 기능들을 구현하기 위해서는 registerForActivityResult를 사용할 것이며 registerForActivityResult는 기존 사용하던 startActivityForResult가 deprecated 되어 그 대안으로 사용 가능한 방법으로서 더욱 간단하게 해당 기능들을 구현할 수 있다. 2. 레이아웃 2..

2022.08.15 게시됨

[Android][Kotlin] 이미지 불러오기 - registerForActivityResult, coil 포스팅 썸네일 이미지

Android

[Android][Kotlin] 이미지 불러오기 - registerForActivityResult, coil

1. 결과 # 이 글은 저장소의 저장되어 있는 이미지 파일을 불러와 이미지 뷰의 표시하는 방법에 관하여 기술한다. 2. 레이아웃 # 레이아웃은 이미지 파일을 불러올 수 있도록 버튼 1개와 이미지를 보여줄 이미지뷰 1개로 구성하였다. 3. 코드 package com.example.imageloadfile import android.Manifest import android.os.Bundle import android.widget.Toast import androidx.activity.result.contract.ActivityResultContracts import androidx.appcompat.app.AppCompatActivity import coil.load import kotlinx.androi..

2022.04.30 게시됨