Android Font family 만들기

이미지
사용 버전: Android Studio 4.0.1 사용 언어: Kotlin 1.4.0 안드로이드 Font family 만들기를 해보겠습니다. 원하는 글꼴을 인터넷에서 다운로드합니다. 저는 나눔 고딕을 다운로드했습니다. Android Studio에 font 폴더를 만듭니다. res 우 클릭 - New - Android Resource Directory font를 설정하고 OK를 누릅니다. 해당 파일을 마우스로 잡아서 Android Studio font 폴더에 넣습니다. font 우 클릭 - New - Font Resource File을 누릅니다. File name을 정하고 OK를 누릅니다. 만든 xml에 아래를 추가합니다. ​ fontWeight 400은 보통, 700은 굵게입니다. ​ fontWeight는 아래 사이트에 잘 설명되어 있습니다. https://developer.mozilla.org/en-US/docs/Web/CSS/font-weight 끝. 카테고리: Android

Android layout에서 if 사용하기

이미지
사용 버전: Android Studio 4.0.1 사용 언어: Kotlin 1.4.0 ​ 안드로이드 layout에서 if 사용하기를 해보겠습니다. ​ layout에서 if 문을 사용할 수 있습니다. 다만, 방식이 조금 다릅니다. 먼저, livedata가 필요합니다. https://shwoghk14.blogspot.com/2020/08/android-livedata.html if 문을 이용하여, 버튼이 보이고 안 보이게 만들어 볼 겁니다. 그러기 위해서는 View를 import 해야 합니다. 자, 보이고 사라지게 만드는 것은 android:visibility를 사용합니다. 아래를 보시면, if 글자가 없습니다. 대신 '? :' 가 사용됩니다. 기능은 if 문과 동일합니다. viewModel.visibleProgressbar의 변수가 true 면 View.VISIBLE이 실행되고, 아니면 View.GONE이 실행됩니다. ​ @{변수 ? 참일 때 : 거짓일 때} ​ ​ 끝. 카테고리: Android

Android Format string 사용

이미지
 사용 버전: Android Studio 4.0.1 사용 언어: Kotlin 1.4.0 ​ 안드로이드 Format string 사용하기를 해보겠습니다. ​ Format string 이란 글자 타입에 변수를 집어넣을 수 있게 해주는 것을 말합니다. 예로는 %d, %f, %s 등이 있습니다. ​ 안드로이드는 strings.xml을 통해서 문자 타입이 Hard Coding(고정) 되는 것을 방지합니다. strings.xml에서 Format string 사용도 가능합니다. (아래에서는 %s) 하지만 다음과 같이 정의하면, %s에 대한 변수는 어떻게 집어넣을까요? 집어넣는 방법을 알아봅시다. strings.xml의 글자를 불러오는 방법은 두 가지가 있습니다. 하나는 layout.xml에서 불러오는 방법과 다른 하나는 kotlin 파일에서 불러오는 방법입니다. ​ 시작하기에 앞서, livedata가 필요합니다. https://shwoghk14.blogspot.com/2020/08/android-livedata.html 1. layout.xml에서 불러오는 방법입니다. 다음과 같이 %s 위치에 2020-01-25가 들어갔습니다. ​ ​ ​ 2. kotlin 파일에서 변경하는 방법입니다. %s 위치에 2019-01-25가 들어갔습니다. ​ ​ 끝. 카테고리: Android

Android View.tag

이미지
사용 버전: Android Studio 4.0.1 사용 언어: Kotlin 1.4.0 ​ 안드로이드 View.tag를 알아보겠습니다. ​ View에 tag는 부수적인 설정으로 반드시 필요한 것은 아닙니다. 그럼 언제 사용하느냐? 바로 id나 text로는 원하는 행동을 할 수 없을 때 사용합니다. ​ 버튼을 예로 들어보겠습니다. id는 Int로 표시됩니다. text는 string으로 표시됩니다. tag는 string으로 표시됩니다. ​ tag 기능이 없다면, 스위치를 눌렀을 때 id나 text를 값으로 전달할 수 없다면, 새로운 변수를 만들어서 전달해 주어야 할 것입니다. 즉, tag라는 기능을 이용해서 원하는 변수를 전달할 수 있게 만들어줍니다. 아래의 예는 버튼을 눌렀을 때, 기능 1이라는 변수를 tag 기능을 이용하여 전달할 수 있음을 보여줍니다. 끝. 카테고리: Android

Python 인코딩 종류(encoding types)

사용 버전 : Python 3.6.8 사용 프로그램 : 1.34.0 x64 ​ 파이썬 인코딩 종류에 대해서 알아보겠습니다. Python encoding type은 다음 페이지에 잘 나와있습니다. https://docs.python.org/2.4/lib/standard-encodings.html 여기서 가장 많이 사용하는 encoding으로는 ascii와 utf-8 정도가 되겠네요. ​ 끝. 카테고리: Standard Library, Python

서브넷 마스크 CIDR 형식과 IP 형식

이미지
서브넷 마스크 CIDR 형식과 IP 형식을 알아보겠습니다. 제가 간단하게 Subnetmask CIDR 형식과 IP 형식 상관없이 IP를 구하는 Android 앱을 만들었습니다. https://play.google.com/store/apps/details?id=starlight.jaehwa.aboutsubnetmask 도움이 되면 좋겠습니다. (개선사항은 언제나 환영입니다) ​ ​ 서브넷 마스크의 표기법에는 두 가지가 있습니다. 1. 255.255.255.0 2. /24 ​ 1 번의 경우 10 진법 표기법으로 IP 형식으로 표기합니다. 2 번의 경우는 CIDR(Classless Inter-Domain Routing) 표기법으로 사람이 쉽게 읽을 수 있게 만들어줍니다. ​ 왜 CIDR이 읽기 쉽고 쓰기 쉬울까요? 아래 예시를 봅시다. 서브넷 마스크가 255.255.255.0으로 표기되어 있습니다. IP 형식이죠? 등호(=) 다음에 2 진법으로 표시되어 있습니다. 그 2 진법에서 1의 개수를 헤아려 볼까요? ​ 24 개입니다. 그래서 CIDR로 /24로 표시합니다. ​ 더 해봅시다. 아래의 경우는 CIDR로 몇일까요? /28입니다. ​ ​ ​ 마지막으로 한 번 더 해봅시다. ​ ...

Cookie Policy

쿠키 또는 모바일 식별자는 Google에서 게재하는 개인 맞춤 광고 및 개인 맞춤이 아닌 광고와 관련된 사기 및 악용 방지, 최대 게재빈도 설정, 광고 데이터 집계를 지원하는 데 사용됩니다. Cookies or mobile identifiers are used to help prevent fraud and abuse associated with personalized and non-personalized ads served by Google, set the maximum frequency, and support advertising data. 감사합니다. Thanks.

Android Style 적용

이미지
사용 버전: Android Studio 4.0.1 사용 언어: Kotlin 1.4.0 안드로이드 Style 적용을 알아보겠습니다. style 적용은 아래의 그림처럼 적용됩니다. View 속성에 스타일이 적용된다면, 나머지 아래는 무시됩니다. ​ ​ - View attributes 하나의 View에만 적용되는 스타일이 필요할 때 사용합니다. 보통, margins, paddings, constraints 등이 View attributes로 많이 사용됩니다. ​ - Styles 반복되게 사용되는 스타일이 필요할 때 사용합니다. 버튼이나 헤더 등의 일관성을 유지해 줍니다. 보통, 글자 크기, 색깔, 글꼴 등이 그렇습니다. ​ - Default style Android 시스템에서 기본으로 제공되는 스타일을 말합니다. ​ - Themes 앱의 전체 색을 정하거나, 전체 앱의 글꼴을 정하는 등의 전체 스타일 설정을 할 때 사용합니다. ​ - TextAppearance 오직 text attributes를 위한 스타일입니다. 보통 글꼴에 사용됩니다. ​ ​ 끝. 카테고리: Android

Android RecyclerView 이전 위치

이미지
사용 버전: Android Studio 4.0.1 사용 언어: Kotlin 1.4.0 안드로이드 RecyclerView 이전 위치를 알아보겠습니다. RecyclerView를 사용하면, 뒤로 가기 버튼으로 돌아왔을 때 해당 위치가 아닌 맨 처음으로 스크롤이 올라가 있습니다. 이는 사용자에게 불편함을 제공합니다. 이전에 보던 스크롤 위치를 유지하게 만들어 봅시다. 우선 RecyclerView가 필요합니다. https://shwoghk14.blogspot.com/2020/06/android-recyclerview.html ​ Version 1.2.0-alpha02에 추가된 기능이 있습니다. 안정된 버전은 1.1.0으로 위의 버전은 안정적이진 않지만, 해당 기능을 사용하기 위해 버전을 업데이트합니다. Sync Now를 누릅니다. ​ ​ adapter가 정의된 곳으로 가서, 아래처럼 설정합니다. 끝. 카테고리: Android

Android Room Database Migration 1

이미지
사용 버전: Android Studio 4.0.1 사용 언어: Kotlin 1.4.0 안드로이드 Room Database Migration을 알아보겠습니다. Migration 이란, Room Database의 버전 변경으로 인한 충돌을 어떻게 대처하며, 기존 데이터베이스의 자료는 어떻게 할 것인가를 설정하는 것을 말합니다. 먼저 Room Database를 사용합니다. https://shwoghk14.blogspot.com/2020/06/android-room-database-1.html 일반적으로 데이터의 보존이 필요 없다면, 버전을 증가시키고, Migration은 DestructiveMigration을 사용해 줍니다. 그렇게 되면, 기존 테이블은 버려지고 빈 테이블이 만들어집니다. 이번에는 아래의 새로운 테이블이 추가되는 경우를 해보겠습니다. 9 번째 줄에 테이블을 하나 더 추가하고 버전을 증가시켜줍니다. 기존의 테이블을 버려도 된다면, 이대로 실행하면 됩니다. 하지만, 보존이 필요하다면, Migration을 다시 정의해 줘야 합니다. CREATE TABLE에 새로 만들 테이블 이름을 적어줍니다. 그리고, 위의 변수를 따라서, 타입을 맞춰서 해줍니다. NOT NULL은 null이 들어가지 않는다는 뜻이고, DEFAULT는 생성될 때의 기본 값을 나타냅니다. settingKeyboard의 경우 Boolean이지만, SQLite의 경우 Boolean 타입이 없습니다. 그래서 INTEGER 형태로 저장됩니다. 0은 false, 1은 true를 나타냅니다. 마지막으로 PRIMARY KEY를 지정해 줍니다. ​ ​...