Android darkmode disable code
2022. 6. 29. 17:39
[# 2]…My DevelopStory
Android darkmode disable code 안드로이드에 다크모드가 추가되면서 프로젝트내에 나이트 테마가 추가되었다. 언제부터인지 모르겠지만, 아무생각 없이 개발을 하다 보면 다크모드인 기기에서 큰 이슈가 발생한다. 예를 들어 글씨를 검정색으로 했는데 다크모드에서는 글씨가 전혀 보이지 않는다거나.. 등등 이럴 때 프로젝트 상 굳이 다크모드를 적용하고 싶지 않은 경우 코드의 테마를 바꾸어 주면 된다. 해당 테마는 원본 테마이며 이 테마의 parent만 바꾸어 주면 된다 parent를 Light로 변경해주면 다크모드가 적용된 기기에서도 앱의 테마는 다크모드를 따라가지 않는다
Android kotlin pair ~ How to modify a value in a pair
2022. 6. 29. 17:33
[# 2]…My DevelopStory
Android kotlin pair ~ How to modify a value in a pair 안드로이드 개발을 하다 보면 두개의 값이나 3개의 값을 한번에 보내야 하는 경우가 종종 있다. 이럴 경우 객체를 하나 만들어서 받게 되는데 이렇게 하면 시간도 늘어나고 라인수와 자칫 클래스 파일까지 하나 더 만들어져 버릴 수 있다. 그래서 코틀린에서는 아주 좋은 함수를 제공하는데 그것이 Pair이다 사용법은 아주 간단하다 val (name, gender) = Pair("Mader", "Man") println("name = $name") println("gender = $gender") val pairSample = Pair("kim", "unknown") println("name = ${pairSample...
Android Log Lib ~ Timber Lib
2022. 6. 29. 17:05
[# 2]…My DevelopStory
Android Log Lib ~ Timber Lib 개발을 하면 정말 중요한 것이 로그인데, 물론 무슨 프레임워크든 로그를 기본으로 아주 기본으로 제공한다. 안드로이드에서도 마찬가지로 제공을 하는데, 이를 좀 더 편리하게 쓰기위해서 로그관련 라이브러리를 찾아보면 많은 로그 라이브러리가 있는데, 이 중 아주 직관적인 로그 라이브러리를 소개하려고 한다. https://github.com/JakeWharton/timber 바로 Timber 라이브러리이다. 사용법도 아주 간단하다. 일단 라이브러리부터 추가하자 // log lib - timber implementation 'com.jakewharton.timber:timber:5.0.1' 그리고 해당 프로젝트의 application에서 셋팅을 해주면 어디에서든 ..
Android Force Update Check ~ Google InApp update lib
2022. 6. 24. 13:23
[# 2]…My DevelopStory
Android Force Update Check ~ Google InApp update lib 앱을 업데이트 했는데 강제로 업데이트 해야 하거나 업데이트을 하였다고 사용자에게 알려주어야 하고 싶거나 그럴 때가 있다. api를 통해서 관리를 할 수 있으나 이런 api조차 없는 개인 개발자일 경우 google의 inapp update 라이브러리르 사용하면 된다. // google inApp update implementation 'com.google.android.play:core:1.10.3' 간단하게 gradle에 추가를 해준 후 바로 구현 시작 private fun isAppUpdateAble(context: Context): Boolean { var isUpdate = false val appUpda..
Android TextView String resource bold / textView set html
2022. 6. 23. 00:00
[# 2]…My DevelopStory
Android TextView String resource bold / textView set html 텍스트뷰에는 String만이 아닌 html로 되어 있는 string resource도 추가할 수 있는데, 기존의 방법과는 조금 다르다 Title sample is sample]]> string resource에서 CDATA를 이용하면 간단한 html 태그도 사용할 수 있다. 컬러까지 변경이 가능한데 폰트 크기까지는 변경이 안되는 걸로 알고 있다. 일단 제목에 bold라고 해놓았으니 해당 태그인 태그를 추가 하였다. 위와 같이 설정 후 기존에 textview에 setText를 하면 에러가 난다. fun spannedToString(msg: String): Spanned { if (Build.VERSION..
Android TabLayout, Viewpager2 selected tab text bold
2022. 6. 21. 12:21
[# 2]…My DevelopStory
Android TabLayout, Viewpager2 selected tab text bold tablayout과 viewpager2 그리고 그에 따른 fragment를 사용하면 간단하고 탭 이동과 다른 화면을 보여줄 수 있다. tablayout에서 기본적으로 선택된 탭의 커스텀을 제공하고 있지만, bold처리만은 되어있지 않다. 이 기능은 리스너를 통해 직접 구현을 해야 한다. 구글에 검색을 하면 많은 자료들이 보이고 대부분 tablayout의 리스너를 통해 변경을 하고 있는데, 내 경우 스와이프시 잠깐 반짝이는 현상이 보였다. 아마 bold처리와 bold해제에서 문제가 발생한 듯 싶은데 이를 tablayout의 리스너를 통해서는 잡을 수 없었다. 그래서 방법을 바꿔 viewpager2의 registe..
안드로이드 코틀린 MotionLayout setTransitionListener ~ Android Kotlin MotionLayout setTransitionListener
2021. 5. 29. 20:24
[# 2]…My DevelopStory
안드로이드 코틀린 MotionLayout setTransitionListener Android Kotlin MotionLayout setTransitionListener 안드로이드 개발을 하면서 여러가지 애니메이션 효과를 넣어야 한다. 이 때마다 일일이 코드로 구현하느라 간단하 애니메이션을 쓰더라도 코드량이 많아지는 경험이 분명 있을 것이다. 이에따라 구글에서 MotionLayout을 제공하는데 나온것에 비해 나도 이제 처음 써본다. MotionLayout은 따로 implementation없이 constraintLayout에 포함되어 있다. 이 중 각각 액티비티에 만들어진 MotionLayot을 붙여야 하는 경우가 있는데 이 때 setTransitionListener을 사용하면 된다. 이 전에 각각 mo..
안드로이드 코틀린 DialogFragment full screen & statusbar ~ Android Kotlin DialogFragment full screen And statusbar
2021. 3. 17. 22:03
[# 2]…My DevelopStory
안드로이드 코틀린 DialogFragment full screen & statusbar Android Kotlin DialogFragment full screen And statusbar 안드로이드에 프레그먼트를 dialog처럼 쓸 수 있게 기본적으로 DialogFragment를 상속받아서 만들 수 있다. 이 때 이 fragmentDialog를 full screen을 적용할 수 있다. override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setStyle(STYLE_NO_TITLE, R.style.FilterFullScreenDialog) } onCreate를 오버라이딩해서 만든 후 setStyle으로 ..
안드로이드 코틀린 스와이프 메뉴 구성 ~ Android Kotlin Swipe Menu
2020. 12. 22. 13:16
[# 2]…My DevelopStory
안드로이드 코틀린 스와이프 메뉴 구성 Android Kotlin Swipe Menu 모바일 특성상 작은 화면에 많은 것을 보여주어야 하기 때문에 메뉴나 삭제와 같은 작은 동작들은 숨겨놓고는 한다. 그래서 대체로 자주 보이는 기능이 클릭을 하였을 때 펼쳐지는 메뉴 혹은 스와이프를 했을 때 나오는 메뉴 기능이다. 구현은 Recyclerview에다가 구현을 하였으며, 꼭 Recyclerview에다가 할 필요 없을 것이다. 라이브러리는 사용하지 않고 ItemTouchHelper를 사용하여 구현한 자료를 참고로 만들어 보았다. 사실 참고라기엔 중간에 망쳐서 다 가져다 썼다.. 일반 Recyclerview와 코드는 같고 item의 레이아웃만 뒤에 가려져 있는 스와이프 했을 때 나올 메뉴를 겹쳐서 만들어 놓아야 한다..
안드로이드 코틀린 KenBurnsView 구현하기 ~ Android Kotlin KenBurnsView
2020. 11. 9. 23:12
[# 2]…My DevelopStory
안드로이드 코틀린 KenBurnsView 구현하기 Android Kotlin KenBurnsView github.com/flavioarfaria/KenBurnsView 이번에는 많이 사용하지는 않지만, 막상 사용하면 생각외로 이쁜 효과 라이브러리를 소개해보려고 한다. 사례로는 사람들의 시선을 끌 수 있는 배너나, 심심한 이미지에 효과를 더해주는 곳에 사용하면 좋을 것 같다. 요즘에는 핸드폰 메모리도 출중하게 좋아, 많이 누적될 시 느려지는 현상을 걱정하면서 쓸 필요는 없다고 생각이 되지만, 안보일때에는 stop시키는게 좋다고 생각이 든다. 라이브러리는 위 url에서 확인할 수 있다. 이 url이 무엇인지 궁금할 수 있어 demo play gif이미지 한장을 가지고 왔다. 이렇게 사진의 포커스가 자동으로 ..