본문 바로가기

전체 글431

[Android/Kotlin] 안드로이드 ConstraintLayout(2) Barrier 안녕하세요. 지난번 ConstraintLayout Chain에 이어서 Barrier 기능에 대해서 알아보겠습니다. 2021/02/07 - [Android/Material Design] - [Android/Kotlin] 안드로이드 ConstraintLayout(1) Chain [Android/Kotlin] 안드로이드 ConstraintLayout(1) Chain 안녕하세요. 오늘은 ConstraintLayout의 기능중에 Chain에 대해서 알아보겠습니다. Chain은 사용 가능한 공간 내 뷰들간의 분할되는 방식을 제어할 수 있는 제약조건입니다 그리고 기존 레이아웃 중에 L android-dev.tistory.com Barrier 라는 영어단어는 '장벽'을 뜻하는 말로 뭔가 레이아웃에 벽을 만들어준다 라고.. 2021. 2. 7.
[Android/Kotlin] 안드로이드 ConstraintLayout(1) Chain 안녕하세요. 오늘은 ConstraintLayout의 기능중에 Chain에 대해서 알아보겠습니다. Chain은 사용 가능한 공간 내 뷰들간의 분할되는 방식을 제어할 수 있는 제약조건입니다 그리고 기존 레이아웃 중에 LinearLayout에서 사용하였던 weight 속성을 ConstrainrLayout에서도 사용할 수 있습니다. 그럼 만드는 방법에 대해서 설명드리겠습니다. STEP01. 체인 만들기 Chain은 여러 뷰들로 구성되어 있기때문에 Chain을 만들기 위해서 연결할 뷰들을 모두 선택해야 합니다. 아래와 같이 모든 TextView를 선택하고, 우클릭 Chain > Create Horizontal Chain을 선택하여 체인을 만들 수 있습니다. 체인을 생성하면 아래와 같이 뷰들의 관계 및 위치가 변화.. 2021. 2. 7.
[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/Error] 안드로이드 error: cannot find symbol @dagger.hilt.InstallIn(value = {ApplicationComponent.class}) Dagger Hilt를 업데이트하고 나서 Build를 하니깐 아래와 같은 에러가 발생했습니다. error: cannot find symbol @dagger.hilt.InstallIn(value = {ApplicationComponent.class}) ApplicationComponent 가 SingletonComponent 으로 이름이 변경되었다고 합니다. Ctrl + Shift + F 를 통해서 ApplicationComponent를 찾아서 SingletonComponent로 변경했더니 잘 되네요.. 2021. 2. 5.