본문 바로가기

안드로이드

(9)
[Android] 어플리케이션 글꼴 변경하기 + 글꼴 일괄 적용 안드로이드 스튜디오에서 기본으로 제공하는 글꼴 외에도 자기가 원하는 글꼴을 적용하고 싶을때가 있다. 그럴때는 해당 글꼴의 .ttf or .otf 파일을 안드로이드 스튜디오에 넣어줌으로써 해당 글꼴을 적용할 수 있다. 1. 폰트 디렉토리 생성 폰트를 추가하기 위해서는 먼저, /res/font/ 아래에 추가를 해야하는데 font폴더가 없을경우 res -> New -> Directory 로 폴더를 생성해준다. 2. 폰트 넣어주기 그 다음 font 디렉토리에 적용하고 싶은 글꼴의 .ttf 파일을 넣어준다. (ctrl + c -> ctrl+v) 이때, 폰트 명을 반드시 소문자로 바꿔 주어야 한다 !! (대문자가 포함되어있을 시 파일을 옮긴 후 Refactor 혹은 옮기기 전에 파일명 소문자로 수정 후 옮겨주기) ..
[Android : Kotlin] 뒤로가기 두번으로 앱 종료하기 with SnackBar 뒤로가기에 대한 처리를 해주지 않으면 기본으로 구성되어있는 onBackPressed() 메서드가 호출되며 열려있는 액티비티를 finish()시키게 되어있어서 뒤로가기 버튼을 한번만 누르면 앱이 종료되어 버린다. 뒤로가기를 실수로 눌러도 바로 종료되어버리기 때문에 한번 눌르면 "종료하시겠습니까?" 라는 메시지를 보여주고 두번 누르면 앱을 종료하는 기능을 구현해보자. 이 기능을 구현하기 위해서는 onBackPressed() 메서드를 재정의해야한다. //뒤로가기 연속 클릭 대기 시간 var mBackWait:Long = 0 먼저, 멤버변수로 뒤로가기 버튼 클릭시간의 간격을 재기위해서 변수를 선언해준다. 그 다음 onBackPressed() 메서드를 재정의해준다. override fun onBackPressed..
[Android] EditText auto focus, auto 키패드 ON/OFF ON EditText의 자동 포커스, 자동 키패드 기능을 적용하려면 EditText의 nextFocusDown 속성을 이용해서 포커스의 순서를 정할 수 있다. 또한 자동 키패드를 설정하기 위해서는 AndroidManifest.xml의 해당 Activity에 windowSoftInputMode 속성값을 stateVisible값을 준다. OFF 반대로, 자동 포커스 기능을 막으려면 EditText를 감싸는 상위 view에 focusable, focusableInTouchMode 속성값에 true를 주어서 상위 view에 focus를 주면 된다. 또한 EditText의 자동 키패드를 실행을 막으려면 AndroidManifest.xml의 해당 Activity에 windowSoftInputMode 속성값을 sta..
[Android] EditText 밑줄(underline) 제거 및 Cursor(커서) 커스텀 EditText를 사용하면 EditText의 너비만큼 자동으로 밑줄이 생성되어있다. 이 밑줄을 제거하기 위해서는 EditText의 속성에 android:background="@android:color/transparent" 혹은 android:background="@null" 로 밑줄을 제거할 수 있다. 그런데 이렇게되면 텍스트창의 커서까지도 사라져버린다. 이 커서를 다시 만들어주기 위해서 /res/drawable 폴더에 text_cursor.xml 파일을 만든다. 이 때, cursor의 색상은 미리 /res/values/colors 폴더에 지정해놓는다. /res/drawable/text_cursor.xml 그 다음에 EditText의 속성에 android:textCursorDrawable="@drawa..
[Android : Kotlin] TextInputLayout을 사용해서 EditText를 꾸며보자 TextInputLayout을 사용하면 EditText에 넣은 힌트를 텍스트 입력중에 텍스트바 위로 올려서 보여주거나 텍스트의 글자 수를 세주거나 최대 글자 수를 초과할 경우 에러 메시지를 보여주는 등의 기능을 사용할 수 있다. 1. 의존성 추가 앱 모듈의 build.gradle에 안드로이드 디자인 서포트 라이브러리를 추가한다. implementation 'com.android.support:design:22.2.0' 2. 텍스트 입력중에도 힌트 보여주기 먼저, TextInputLayout으로 EditText를 감싼다. 이렇게 감싸주기만 하면 EditText의 hint가 텍스트 입력중(Focus가 되어있을경우)에는 EditText의 위에서 hint 내용을 보여주게된다. 3. pw토글 TextInputLa..
[Android : Kotlin] 네이버 지도 SDK를 사용해서 네이버 맵을 구현해보자 안드로이드 코틀린으로 네이버 지도 SDK를 사용해서 네이버 지도를 구현해보자. 1. 먼저, ☞ 네이버 클라우드 플랫폼에 가입해서 어플리케이션 등록을 한다. 2. 의존성 추가 루트 프로젝트의 build.gradle에 에 저장소 설정을 추가한다. allprojects { repositories { google() jcenter() maven { url 'https://navercorp.bintray.com/maps' // naver map } } } 그리고 앱 모듈의 build.gradle에 네이버 지도 SDK에 대한 의존성을 선언한다. implementation 'com.naver.maps:map-sdk:3.5.0' // naver map 3. 클라이언트 ID 지정 발급받은 클라이언트 ID를 SDK에 지정..
[Android : Kotlin] Navigation Drawer를 사용해서 메뉴를 만들어보자 평소에는 닫혀있다가 사용자의 메뉴 버튼 클릭이나 스와이프(Swipe)를 사용하여 슬라이드 형식으로 '서랍'처럼 레이아웃의 옆쪽에서 튀어나오는 메뉴가 Navigation Drawer를 사용해 만든 메뉴이며 대표적으로는 Gmail 어플리케이션의 좌측 상단 메뉴에 쓰인 레이아웃이다. Navigation Drawer는 DrawerLayout을 사용하여 구성하며 Drawer에 Navigation 항목들이 결합된 형태이다. 1. DrawerLayout DrawerLayout은 주화면과 특정 액션으로 주화면 위에 나타나는 보조화면 즉, Drawer가 있는데 두 화면의 구성은 다음과 같다. Drawer가 나타나지 않은 주 화면에서 버튼 이벤트 등으로 Drawer를 나타나게 할 수 있으며, view에 layout_gra..
[Android : Kotlin] Firebase를 연동하여 구글(Google) 로그인을 구현해보자 어플리케이션 로그인 시 별도의 회원가입 없이 구글, 페이스북, 네이버 로그인과 같은 소셜 로그인 기능으로 사용자 편의를 제공할 수 있다. 그 중 구글(Google) 로그인을 구현해보자. 1. Firebase 프로젝트 생성 먼저, Firebase에 접속하여 프로젝트를 생성한다. 프로젝트 생성 후 Android 앱을 추가하기 위해 안드로이드 아이콘 클릭 후 Android앱에 Firebase를 추가한다. - Android 패키지 이름은 안드로이드 스튜디오 프로젝트 실행 한 뒤, app → manifests 에서 package = "com.~~~" 라고 되어있는 부분이 패키지 이름이다. "" 안의 패키지 이름을 복사하여 붙여 넣는다. - 앱 닉네임, 디버그 서명은 선택사항이지만 구글 로그인을 위해서는 디버그 서..