본문 바로가기

코틀린21

[Android/Kotlin] 안드로이드 Gradient TextView 안녕하세요. 오늘은 TextView에 Gradient 효과를 주는 방법에 대해서 알아보겠습니다. 아래와 같이 글씨에 Gradient 효과가 들어갑니다. [LinearGradientSpan.kt] class LinearGradientSpan( private val containingText: String, private val textToStyle: String, @ColorInt private val startColorInt: Int, @ColorInt private val endColorInt: Int ) : CharacterStyle(), UpdateAppearance { override fun updateDrawState(tp: TextPaint?) { tp ?: return var leadingW.. 2021. 2. 7.
[Android/Kotlin] 안드로이드 ViewBinding with BaseActivity, BaseFragment 안녕하세요. 오늘은 BaseActivity 클래스와 BaseFragment 클래스를 사용하여 좀 더 편안하게 ViewBinding을 사용하는 방법에 대해서 알아보겠습니다. 액티비티와 프레그먼트가 많아질수록 ViewBinding을 초기 세팅하는 일도 만만치 않습니다. 초기 세팅을 Base 추상 클래스에서 구현하도록 하겠습니다. BaseActivity에서 구현하는 방법입니다. [BaseActivity.kt] abstract class BaseActivity( val bindingFactory: (LayoutInflater) -> B ): AppCompatActivity() { private var _binding: B? = null val binding get() = _binding!! override fu.. 2021. 2. 6.
[Android/Kotlin] 안드로이드 ViewPager2 인트로 화면 with Navigation Component 안녕하세요. 오늘은 ViewPager2를 사용하여 Intro 화면을 만드는 방법에 대해서 알아보겠습니다. 인트로 화면은 앱을 처음 실행할때 앱의 간단한 사용에 대해서 설명해주는 페이지입니다. 최초 실행시만 보여지고, 그 이후에는 사용자가 볼 수 없도록 구현해 보도록 하겠습니다. 완성된 모습은 아래와 같습니다. 인트로 화면을 구현하기 위해서 Navigation Component를 사용했습니다. 프로젝트의 전반적인 구조는 아래와 같습니다. 액티비티는 MainActivity 하나만 존재합니다. 메인 액티비티 안에서 Fragment 간의 상호작용이 발생하고, 이는 Navigation Component를 사용하여 구현할 예정입니다. SplashFragment 에서 Splash화면을 로딩해주고, 만약 최초 실행이라.. 2021. 2. 6.
[Android/Kotlin] 안드로이드 Notification(1) 안녕하세요. 오늘은 알림 이벤트인 Notification을 구현해 보도록 하겠습니다. 안드로이드 Notification은 아래 그림과 같이 제목, 메시지 그리고 아이콘 등이 표시됩니다. 구현하는 방법은 NotificationComapt.Builder 객체를 사용하여 알림 콘텐츠와 채널을 설정해야 합니다. setContentTitle() -> 제목 setContentText() -> 본문 setSmallIcon() -> 작은 아이콘 setPriority() -> 우선순위 설정 그리고 안드로이드 8.0 이상부터는 NotificationChannel 인스턴스를 createNotificationChannel()에 전달하여 등록해야합니다. 그리고 알림 메시지 클릭 이벤트 등을 처리하기 위해 PendingInten.. 2021. 2. 5.
[Android/Kotlin] 안드로이드 Room Database 사용하기(3) Migration 안녕하세요. 오늘은 Room Database를 사용하다가 Migration이 필요할 때 Migration 하는 방법에 대해서 알아보겠습니다. 테이블을 추가하거나 컬럼을 변경하는 경우에 유용하게 사용할 수 있습니다. 오늘 설명드릴 케이스는 expense_table에 새로운 컬럼을 추가하는 방법입니다. (지출 목록을 분류할 수 있는 category 컬럼 추가 예정) 지난 예제에 이어서 설명드리겠습니다. 2021/02/01 - [Android/AAC] - [Android/Kotlin] 안드로이드 Room Database 사용하기(2) Select... 2021/01/30 - [Android/AAC] - [Android/Kotlin] 안드로이드 Room Database 사용하기(1) 먼저 그냥 컬럼을 추가한다고.. 2021. 2. 5.
[Android/Error] 안드로이드 java.lang.IllegalStateException: An instance of OnFlingListener already set. 안녕하세요. 오늘은 RecyclerView에서 SnapHelper를 적용하는 도중에 아래와 같은 에러가 생겼습니다. java.lang.IllegalStateException: An instance of OnFlingListener already set. OnFlingListener 인스턴스가 이미 존재하는 에러라는데... OnFlingListener 리스너를 한번 찾아 봤는데 아래와 같은 설명이 있었습니다. This class defines the behavior of fling if the developer wishes to handle it. Subclasses of RecyclerView.OnFlingListener can be used to implement custom fling behavior.. 2021. 2. 4.