전체 글 103

[Android/kotlin] 특정 위치로 스크롤하기

ScrollView의 특정 UI로 자동 스크롤 ScrollView의 특정 TextView를 클릭하면 특정 위치로 자동스크롤 되게 하기 위해서, 현재 스크롤 위치, 특정 UI로 자동 스크롤 위 2가지를 알아야했습니다. Vertical ScrollView를 쓰고 있기 때문에 값은 Y축의 값만 사용합니다. 현재 스크롤 위치 구하기 현재 스크롤의 Y축 값은 생각보다 간단하게 구할 수 있는데, 그 값을 가져오기 위해서 ViewTreeObserver를 사용해야합니다. ViewTreeObserver없이 사용하면 0을 리턴하는 경우가 많기 때문에 ViewTreeObserver를 사용하겠습니다. ViewTreeObserver 각 리스너를 통해 변화를 감지, OnScrollChangeListener 사용 OnScrollC..

📱 Android 2020.08.12

[Android/kotlin] 시스템 폰트 크기에 영향받지 않게 하기

font size DP 선언 이전 포스팅에서도 정리한 적이 있지만 dp는 물리적인 디스플레이 해상도에 영향을 받지 않기 때문에 해상도에 따라 맞춰주지 않아도 된다. 반면, sp의 경우는 dp와 유사하지만 물리적인 디스플레이 해상도에 영향을 받는다. 그렇기 때문에 해상도에 영향을 받지 않으려면 dp로 TextSize를 정해주면 된다 (Galaxy S8 기준) 안드로이드 설정-> 디스플레이 -> 글자 크기와 스타일에 들어가면 글자 크기를 조절할 수 있는데, 부끄럽게도 이번에 처음 확인을 해보았다. 결과는 대참사가 일어났다. UI는 뒤죽박죽이 되었고, 심지어 잘려서 보이지 않는 텍스트가 발생했다. 부랴부랴 TextSize를 dp로 변경했지만, 내가 놓친 부분이 2개나 있었다. TextView가 programm..

📱 Android 2020.07.27

[Android/kotlin] 푸시 클릭 시 앱의 실행상태 체크

앱의 실행상태 체크해보기 푸시를 받았을 때, 앱이 실행중인지 아니면 앱이 꺼져있다가 실행되는지를 체크해야하는 작업이 필요했습니다 방법을 찾던 중 LifeCycle을 이용하는 방법을 선택했습니다 그 전에 Activity의 활동주기에 관해서도 간략히 정리하려고 합니다. 공식문서를 참고해서 정리해보았습니다 Activity의 활동주기 onCreate() 시스템이 처음 생성될 때 실행, 기본 시스템 로직을 생성 onStart() onCreate 상태가 되면 호출, Activity가 사용자에게 보이기 직전의 상태 onResume() 앱이 사용자와 상호작용, 앱에서 포커스가 떠나기 전까지 이 상태에 머무름 onPause() activity가 일시 정지의 상태, 작업을 완전히 종료할 땐 onStop() 사용이 좋다 o..

카테고리 없음 2020.07.22

[Android] MPAndroidChart BarChart 사용하기

MpAndrodChart의 HorizontalBarChart 사용하기 데이터를 보여줄 때 가독성을 높이는 방법 중엔 그래프가 있습니다. 은근 그래프를 사용할 때가 많은데, 그래프 라이브러리 중 가장 유명한 MPAndroidChart를 사용해보았습니다. HorizontalBarChart 사용하면서 적용할 수 있는 속성이 너무나도 많아서 나중에 쓰기 위해 쉽게 정리해둬야겠습니다. 사용 언어 : Kotlin MPAndroidChart GitHub 물론 Github에 자세하게 나와있지만, 나름대로 정리해봤습니다. 1. Gradle 추가 build.gradle repositories { maven { url 'https://jitpack.io' } } dependencies { implementation 'com..

📱 Android 2020.05.17

[Android] Lottie Animation 적용하기

안드로이드 Lottie 적용 Lottie 애니메이션 Lottie는 Json으로 이루어진 애니메이션이다. gif보다 용량이 적어서 부담이 적다. 실제로 사용해본 결과 처음은 불편했지만, 디자이너님과 서로서로 훨씬 수월해지는 작업이었다. 앞으로 Lottie 사용이 더 늘어날 것 같다. 그냥 이미지를 사용했을 때 보다 역시 애니메이션이 이쁘다..! 실제로 LottieFile들이 올라간 사이트를 구경하다보면 눈에 확 들어오는 애니메이션들이 많았다. Lottie에 쓰일 이미지는 로티파일 에 들어가면 아주 많이 나와있다. 꼭 한 번 둘러보시길 ! Lottie 사용 API 14 이상의 안드로이드 버전이 필요 gradle에 implementation 'com.airbnb.android:lottie:$lottieVers..

📱 Android 2019.12.31

[Android / Kotlin] Custom SeekBar

SeekBar를 Custom해서 사용했는데, 깔끔하게 사용하려면 조정해야할 부분이 좀 있었다 보통 SeekBar는 Custom으로 많이 사용하니 까먹지 말자..! 1. android:background="@null" Thumb을 이동시키면 Ripple Effect효과가 나타나는데 이 효과를 없애기 위해서 사용 2. android:progressDrawable="@drawable/이미지명" Bar의 background를 적용 3. android:splitTrack="false" seek1처럼 Thumb를 커스텀하면 좌우에 여백이 생긴다 seek2처럼 변경시키기 위해 splitTrack 적용 4. android:thumb="@drawable/이미지명" Thumb의 background 적용

📱 Android 2019.11.15

[MPAndroidChart/kotlin] BarChart 여러 개의 Bar (GroupBar)

BarChart에 그래프를 여러 개를 표시하고자 했는데 예전에 사용했던 방법과 좀 달라진 듯 하다 아마 라이브러리가 버전 업 되면서 다른 부분이 생긴 것 같다 다음에 또 사용하려면 미리 정리해둬야징 GroupBar 기능은 버전 3이상 부터 사용가능 하고자 했던 그래프의 형식은 각 그룹 별로 간격이 있고, 그룹 내의 그래프들 사이에도 간격이 들어가는 형식이다 BarChart에 데이터를 넣는 작업은 해봤던 지라 지금 고려해야 할 사항은 1) Bar를 GroupBar로 만들기 2) 그룹사이의 간격 3) 그래프들 사이의 간격 우선 공식문서를 참조했다 https://github.com/PhilJay/MPAndroidChart/wiki/Setting-Data PhilJay/MPAndroidChart A powerf..

📱 Android 2019.10.18

[Android / Kotlin] TextView 취소선 표시 및 해제

취소선이란 이런것 취소선 표시 Java tv.setPaintFlags(tv.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG); Kotlin tv.paintFlags = tv.paintFlags or Paint.STRIKE_THRU_TEXT_FLAG 취소선 해제 취소선 해제를 제대로 안 해주면 TextView의 폰트가 약간 깨져서 보이는 경우가 있었다 서치하다 찾아낸 방법 Kotlin 연산자에 대해서도 공부를 좀 해야겠다 Java tv.setPaintFlags(tv.getPaintFlags() & (~ Paint.STRIKE_THRU_TEXT_FLAG)); Kotlin tv.paintFlags = tv.paintFlags and Paint.STRIKE_THRU_TEXT_F..

📱 Android 2019.10.01

[Android / kotlin] getLineCount = 0으로 찍힐 때

아래 포스팅에서 textView에 설정된 ellipsize를 체크할 때 getLineCount를 사용했는데 0으로 가져올 때가 있어서 제대로 동작하지 않았습니다 문제는 textview가 그려지기 전에 line값을 반환해서 0이 찍혔기 때문입니다 Solution ) isLaidOut으로 그려졌는지 체크한 후에 ellipsize를 체크하면 정상적으로 동작합니다 API19 이전 , 이후로 나누어 사용합니다 이전 : ViewCompat.isLaidOut(textView)) 이후 : textView.isLaidOut 참고 사이트 : https://blog.asamaru.net/2015/09/04/android-view-dot-islaidout-and-view-dot-post/

📱 Android 2019.09.26

[Android/Kotlin] TextView 더 보기 기능

TextView의 더 보기 TextView안의 text가 늘어날 경우 말줄임표처럼 표시하고, 내용을 펼쳤다가 접었다가 할 수 있는 기능을 구현해야합니다 나중에 또 쓸 일이 있을 것 같아서 정리해두고자 합니다 우선, TextView 2개를 사용해 하나는 text를 표시하고, 하나는 더보기를 표시하는 용도로 사용했습니다 text 표시 View : tvMsg 더보기 표시 View : tvMore tvMsg의 MaxLine은 2로 정하고, ellipsized는 end로 지정했습니다. 그리고, tvMore은 tvMsg의 text가 MaxLine을 넘어설 경우에만 보이게 했습니다. tvMsg가 ellipsized 상태인지 확인 MaxLine을 넘어섰을 경우를 확인하기 위해선, ellipsized의 상태인지 확인하면..

📱 Android 2019.09.17