* 이 글은 개발자를 위한 글입니다. → 일반 사용자라면 "블루라이트 어플" 등 화면 제일 위에 있는 앱을 종료한 뒤 다시 권한을 요청해보세요. 마시멜로우 이상의 안드로이드에서는 특정 기능을 사용하기 위해 사용자의 허가를 받아야만 합니다. 근데 가끔 이 허가를 받으려고 하는데 "화면 오버레이 감지됨"이라는 문구가 뜨면서 허가가 안되는 경우가 있죠. 인터넷을 찾아 봐도 정확히 어떤 것이 원인인지에 대한 얘기는 별로 없더라구요. "화면 오버레이 감지됨"은 말 그대로 화면을 다른 무언가가 덮으려고 한다는 의미입니다. 여기서 덮는다는 것은 꼭 화면 전체가 아니라 일부만 덮어도 덮는다는 얘기입니다. 안드로이드에서 화면을 덮는 것이 뭐가 있을까요? 잠깐만 생각해봐도 쉽게 알 수 있는 것들입니다. 1. 항상 화면의 ..
앱에서 종종 화면을 밝게 해야 하는 경우가 생기게 됩니다. 바코드 혹은 QR 코드가 화면에 떠 있어 인식률을 높여야 하는 경우가 대표적이겠네요. 안드로이드에선 화면 밝기를 조절하는 방법이 두 가지가 있는데요, 첫 번째 방법은 provider의 System 클래스에 접근해 변경하는 방법이고, 두 번째 방법은 액티비티의 리소스에 접근해 변경하는 방법입니다. 첫 번째 방법은 시스템에 직접 접근하는 방법입니다. 일반적으로 시스템에 접근하려면 시스템 권한을 추가적으로 얻어야 하는데, 이 권한은 접근성을 허가해줘야 합니다. (requestPermission()으로 얻을 수 있는 권한이 아닙니다) 아무래도 사용자 입장에선 굉장히 불편하죠. 게다가 자동 밝기가 설정되어 있다면 자동 밝기도 해제해 줘야 합니다. 그래서 ..
안드로이드 앱을 만들 때 지정된 폰트를 이용하게 하는 것은 상당히 까다롭습니다. android:fontFamily를 지원해주긴 하지만 쓸 수 Roboto 폰트 패밀리밖에 적용이 안되고, TextView의 폰트를 변경시켜주는 Typeface를 이용하면 커스텀 폰트를 적용시킬 수 있지만 다수의 TextView에 적용시키는 데엔 한계가 있습니다(보통 커스텀 TextView를 만들어 사용합니다). Typekit은 그런 번거로움을 없애주고, 직관적으로 사용할 수 있는 커스텀 폰트 라이브러리입니다. 불친절하게도 API문서도 없고 각 메서드에 대한 설명이 거의 돼있지 않아서, 하나씩 적용해본 뒤 글을 작성하게 됐습니다. 0. 원하는 폰트를 프로젝트폴더\app\src\main\assets 안에 넣어 줍니다(assets..
* 최신 버전인 2.3버전에서도 여전히 한글이 깨지는 문제가 있습니다. 2.2버전과 내용이 조금 다르나, 마찬가지로 같은 방법으로 해결할 수 있습니다. 안드로이드 스튜디오 2.2버전부터 프리뷰 화면에서 한글이 깨지는 문제가 있었습니다. NanumGothic.ttf 파일은 들어있는데, 제대로 설정이 되어있지 않아 생기는 문제라고 하네요.해결 방법은 fonts.xml 파일을 수정하는 것입니다. 저는 윈도우를 사용중이기 때문에, 윈도우를 기준으로 설명합니다. 해당 파일은 안드로이드 스튜디오의 설치 경로에서 찾을 수 있습니다. 제 경우 C:\Program Files\Android\Android Studio\plugins\android\lib\layoutlib\data\fonts 였습니다.fonts.xml 파일을..
EditText는 기본적으로 엔터로 줄 바꿈이 되는, 여러 줄의 글자를 입력받습니다. 이 EditText를 사용해 아이디, 이름 등을 입력하게 하면, 사용자는 불필요한 터치를 반복해야만 합니다. 키보드의 엔터를 누르면 다음 입력란으로 넘어가는 것이 아닌 줄바꿈이 되기 때문이죠. 여기서 필요한 바로 그 "다음" 버튼을 만들어 보겠습니다. * 참고 : 이 글은 2017년 1월에 작성된 글로, API 25버전, 즉 Android 7.1.1 (Nougat)을 기준으로 합니다. * ...은 필수적으로 필요한 내용들(layout_width, layout_height 등)은 생략했다는 의미입니다. 순서는 아래와 같습니다. 1. (XML) EditText 위젯에 inputType 및 imeOptions 속성 추가 2...
흔히 어플리케이션이 켜지기 전 나오는 화면을 Splash screen 혹은 Launch screen이라고 부릅니다. 이 화면은 어플리케이션이 준비될 때까지 표시되는 화면으로써, 앱 구동 중 나타나는 흰색 화면과 같은 화면을 대신해서 나타납니다. 흰색 화면만 덩그러니 놓여 있으면 앱이 제대로 켜진 건지 구분이 잘 안가죠. 스플래시 스크린을 사용하면 빈 화면보다 작동 여부가 분명하게 보이고, 브랜드 로고 노출을 통한 인지도 상승도 자연스레 생기게 됩니다. 구글에서는 이 스플래시 스크린을 두 가지로 구분했는데요, 첫 번째는 Placeholder UI이고, 두 번째는 Branded launch screens입니다. 전자는 로딩이 완료됐을 때 띄워질 화면과 비슷한 화면을 띄우는 방식이고, 후자는 아예 브랜드 로고..
Git은 처음 쓸 땐 무진장 어렵습니다. 제 주변 친구들만 봐도 USB로 프로젝트 파일을 옮기고 있더군요.Android Studio에는 VCS(분산 버전 관리 시스템)을 지원하고 있는데요, 여러 VCS툴을 지원하는데 그 중 하나가 바로 GitHub 연동 기능입니다. 기존의 CLI Git이 아닌, GUI툴로 매우 쉽게 Git을 사용할 수 있게 되어 있습니다. GitHub를 사용하신다면, Android Studio에서 쉽게 Merge, Branch 생성 등을 할 수 있습니다. 이 기능만 잘 활용하면 Git이 어렵지 않을거에요!* 당연한 얘기겠지만 Git 설치 및 GitHub 가입은 필수입니다! Case 1 : 새 프로젝트를 GitHub와 연동하려고 할 때 or 기존 프로젝트를 연동하려고 할 때 1. 새 프로..
- Total
- Today
- Yesterday