전체 글
-
[Android Studio] MaterialCalendarView 커스텀해서 사용하기개발 끄적끄적/Android 2020. 6. 26. 14:30
안드로이드에서 기본 제공하는 CalendarView가 있습니다. 기본 CalendarView로는 다양한 커스텀을 하기 힘들기 때문에 다른 Calendar를 찾게 되는데요. 그 중 유명한 MaterialCalendarView에 대해 알아보겠습니다. MaterialCalendarView는 안드로이드에서 기본 제공하는 CalendarView보다 많은 기능을 가지고 있기에 많은 사람들이 애용합니다. 이제 그 사용법과 활용방법을 알아보겠습니다. build.gradle (Module:app) 에 추가해줍시다. implementation 'com.prolificinteractive:material-calendarview:1.4.3' 이제 xml에 추가해줍시다. mcv_selectionColor는 CalendarVie..
-
[Android Studio] Animation을 이용해 커스텀 로딩 창(Custom Dialog) 만들기개발 끄적끄적/Android 2020. 6. 25. 17:13
저번에 Animation의 종류와 사용 방법에 대해 알아보았습니다. 이번엔 이를 응용해 특정 요청 시 나타나는 로딩 창을 만들어보겠습니다. 로딩창이란 주로 무언가 명령을 내리고 기다릴 때 나타납니다. 무언갈 검색하고 기다리는 동안 로딩창 없이 아무런 반응이 없다면 실행이 되고 있는건지, 아닌건지 헷갈리겠죠? 몇몇 앱을 보면 재미있는 애니메이션으로 기다리는 시간을 지루하지 않게 해줍니다. 기본 로딩창 외에 직접 애니메이션을 만들어 적용한다면 더 퀄리티 높은 앱을 완성할 수 있을 것입니다. 거두절미하고 바로 코드부터 알아보겠습니다. 1. custom_loading_dialog.xml 2. CustomLoadingDialog.kt import android.app.Dialog import android.con..
-
[Android Studio] Animation - fade in & out(나타나기), move (움직이기)개발 끄적끄적/Android 2020. 6. 18. 16:02
레이아웃의 visibility를 조절해 사용자가 볼 수 없게 숨기고, 나타내는 기능은 많이 사용됩니다. 이때 뿅 하고 사라지는 것이 아닌 점차 사라지는 기능을 구현해보겠습니다. mLayout.visibility = View.INVISIBLE 위와 같은 코드는 mLayout을 찰나의 순간에 사라지게 하기 때문에 유저의 입장에서 변화를 놓칠 수 있고, 부자연스럽다는 인상을 줍니다. Animation을 활용하면 사용자가 인식할 수 있는 시간을 주기에 자연스러운 UI를 구현할 수 있습니다. res 에 anim이란 Directory를 만들어 xml 파일을 생성해주겠습니다. fade_in.xml fillAfter는 Animation 종료 후에도 상태를 유지할지에 관한 값입니다. 이미지의 Alpha를 0부터 1까지 ..
-
[Android Studio] 길이 단위 - dp, dpi, px, sp 의 차이점개발 끄적끄적/Android 2020. 6. 18. 15:19
모바일 디바이스는 다양한 크기와 해상도를 가지고 있습니다. 현재 유통되고 있는 모든 기기의 크기, 화소를 계산해서 코딩하지 않으면 원하는 디자인을 유저에게 제공할 수 없게 됩니다. 이를 해결해주는 길이 단위에 대해 알아보겠습니다. 먼저 안드로이드에서 제공하는 길이 단위입니다. 1. px (pixel) 실제 픽셀 수를 뜻합니다. px을 이용하면 해상도가 다른 디바이스마다 실제 크기가 다르게 보이며 심지어 이미지가 깨질 수도 있습니다. 2. dp / dip (Density Independent Pixel) 화면의 크기를 기준으로 하며, 어떠한 화면의 해상도에도 같은 비율로 출력해줍니다. px만으로 다양한 디바이스의 해상도를 지원할 수 없기 때문에 자주 쓰입니다. 3. dpi (Dots per Inch) 1인..
-
[Android Studio] ImageView 속성 알아보기 - ScaleType & Background vs Src개발 끄적끄적/Android 2020. 6. 18. 13:44
이미지 없는 앱을 본 적 있으신가요? 이미지가 들어가지 않은 앱이 있나..? 라고 생각할정도로 이미지는 많이 사용됩니다. 그 중 이미지를 띄우기 위해 가장 많이 사용하는 ImageView의 속성에 대해 알아보겠습니다. 1. Background vs Src 이 둘은 ImageView가 어떤 것을 출력하는지를 정한다는 공통점이 있습니다. 단, src는 padding이 적용되지만 background는 적용이 되지않는다는 차이점이 있습니다. 즉, background는 ImageView 전체를 덮는 것입니다. 전체를 덮는 이미지를 배경으로 글자를 넣는 등의 일은 거의 없기 때문에 이미지를 넣을 땐 웬만하면 src를 사용하는 것이 좋습니다. src에 이미지를 넣고, 그 이미지가 작을 경우 ImageView의 여백에..
-
[Android Studio] Context란? Context의 정의, 종류와 사용 방법개발 끄적끄적/Android 2020. 6. 5. 15:11
안드로이드 개발을 하다 보면 자주 사용되는 context란 것이 있습니다. 지금까지 정확한 기능을 모르고 사용했지만 이번 기회에 context의 기능과 역할을 알아보겠습니다. 개념에 대해 알아볼 때는 공식 문서만큼 정확한 것이 없다고 생각합니다. 아래는 Android Developer 사이트에서 말하는 Context의 정의입니다. Interface to global information about an application environment. This is an abstract class whose implementation is provided by the Android system. It allows access to application-specific resources and classes, ..
-
[Java] String비교하기. equals와 ==의 차이? String pool이란?개발 끄적끄적/Java 2020. 6. 5. 02:54
개발을 하다 보면 두 개의 문자열을 비교해야 할 때가 자주 있습니다. 두 개의 문자열을 비교할 때 어떻게 비교할지, 어떤 차이점이 있는지 알아보겠습니다. 먼저, Java가 내부적으로 String을 어떻게 처리하고 있는지 알아보겠습니다. Java에서 String 객체의 값의 변경은 불가합니다. String name = "Tony"; name += " Stark"; 위와 같은 코드를 짠다면 실제로 "Tony" 값을 가지고 있던 name은 버리고 "Tony Stark"를 가지고 있는 name을 만드는 것입니다. 여기서 name의 실제 내용 "Tony"는 컴파일 후에 String pool에 들어갑니다. 두 개의 String 객체를 비교하는 것엔 두 가지 방법이 있습니다. == 연산 equals() 메소드 1. ..
-
[Android Studio] SQLite을 이용한 내장 DB 활용하기개발 끄적끄적/Android 2020. 6. 5. 01:08
안드로이드에서는 어플리케이션의 효과적인 데이터 관리를 위해 내부 SQL Database인 SQLite Database를 지원합니다. 이를 이용해 용량이 크지 않은 데이터는 서버 통신 필요 없이 관리할 수 있습니다. SQLite을 이용해 번호, 이름, 수량 세 정보를 지니고 있는 데이터 값들을 저장, 수정, 조회, 삭제해 보았습니다. 코드를 보며 하나하나 설명 드리겠습니다. ItemData.kt class ItemData (val pid:Int, val pName :String, val pQuantity:Int) 번호, 이름, 수량 세 정보를 지닌 데이터 클래스를 선언합니다. MyDBHelper.kt import android.content.ContentValues import android.content..