목록Computer/Android (77)
안드로이드 개발자의 창고
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/C0bBG/btsogd9BBXu/AQQ52YkIcAKGm856c2R7QK/img.png)
출처 : 안드로이드 앱스쿨 2기 윤재성 강사님 수업 PPT 📖 Density 안드로이드는 단말기의 해상도에 따라 이미지를 선택할 수 있다. 고해상도 단말기에서 선명한 이미지를 보여주는 목적으로 사용한다. 같은 이미지를 해상도 별로 나눠 준비해놓으면 해상도에 맞는 이미지를 자동으로 사용해준다. 관리가 힘들다는 단점이 있다. 해상도에 따른 분류 dpi 배율 ldpi ~ 120 0.75 mdpi ~ 160 1.0 hdpi ~ 240 1.5 xhdpi ~ 320 2.0 xxhdpi ~ 480 3.0 xxxhdpi ~ 640 4.0 drawable 이미지 적용 단말기 해상도에 해당하는 디렉토리에 이미지가 있을 경우 원본 크기 그대로 그린다. 해상도에 해당하는 디렉토리에 이미지가 없을 경우 인접한 해상도 디렉토리의..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/S70DN/btsn7uKZuon/oOiSBlHMDwAZ6e2mioLnyk/img.png)
출처 : 안드로이드 앱스쿨 2기 윤재성 강사님 수업 PPT 📖 Localization(지역화) 하나의 애플리케이션으로 다양한 언어 및 국가를 지원하기 위한 개념 안드로이드는 res 폴더에 있는 리소스 폴더에 국가 코드를 추가하여 지역화를 할 수 있다. res 폴더 내의 폴더에 수식을 설정해주면 수식어와 일치하는 단말기에 대해 이미지, 문자열 등을 선택해서 사용할 수 있도록 제공할 수 있다. 예제 코드 Localization Flie 파일 생성 시 Locale을 추가하여 나라를 설정한다. Localization을 할 파일 이름을 동일하게 하는 것이 중요하다. activity_main.xml MainActivity.kt class MainActivity : AppCompatActivity() { latein..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/b7Sguv/btsobJfMyGR/6QY741pxCjNHc9IOrO3LHK/img.png)
출처 : 안드로이드 앱스쿨 2기 윤재성 강사님 수업 PPT 📖 9Patch Image View의 배경으로 이미지를 지정할 때 이미지의 길이보다 View의 길이가 더 길면 이미지가 늘어나게 된다. 9 patch 이미지는 이미지의 늘어날 부분을 설정한 이미지이다. 늘어나는 영역으로 설정된 부분만 늘어나고 그렇지 않는 부분은 늘어나지 않기 때문에 이미지가 늘어나더라도 이상하게 나타나지 않게 할 수 있다. 예제 코드 drawable/bubble2.9.png 좌측 & 상단 부분 : 이미지가 확대 되는 영역 우측 & 하단 부분 : 이미지 안의 컨텐츠(내용) 부분이 확대 되는 영역 Image VS 9Patch Image 비교
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cn0NwZ/btsn7QfUCVR/98ADkFbuOBBHtsSPvLCO90/img.gif)
출처 : 안드로이드 앱스쿨 2기 윤재성 강사님 수업 PPT 📖 Image Resource 안드로이드는 drawable 폴더에 이미지를 넣어서 이미지를 사용할 수 있으며 xml 통해 이미지를 새롭게 구성하여 사용할 수 있다. 여러 이미지를 겹쳐 하나의 이미지를 만들 때 패턴 이미지를 만들 때 상태에 따른 이미지를 만들 때 등등 drawable vs mipmap drawable mipmap 넣는 이미지 애플리케이션 내에서 사용할 이미지 아이콘으로 사용할 이미지 관리하는 이미지 종류 Bitmap을 포함하여 xml 파일을 통해 만든 이미지, 코드를 통해 만든 이미지, 안드로이드에서 화면이 그릴 수 있는 요소들을 모두 포함 jpg, png, gif 파일로 부터 읽어온 이미지 데이터를 관리 예제 코드 drawabl..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/mE6Us/btsn3jIhuNh/GKvZgFk7J7AZjAB6LXEOb1/img.gif)
출처 : 안드로이드 앱스쿨 2기 윤재성 강사님 수업 PPT 📖 BasicResource 리소스 파일 : 애플리케이션에서 사용하는 다양한 미디어 파일, 데이터 파일 등등 안드로이드는 리소스 파일들을 res 폴더를 통해 관리한다. 안드로이드는 이미지와 xml 파일을 리소스로 관리하고, xml 파일을 안드로이드에서 정의한 데이터들을 관리하는 용도로 사용한다. xml 파일로 관리되는 데이터들은 언어, 크기 등에 따라 단말기에 대응할 수 있도록 처리할 수도 있다. 문자열 관리 문자열, 문자열 배열을 xml에 등록해서 사용할 수 있다. 다국어 지원을 위해 사용한다. 색상 관리 안드로이드는 단말기 제조사가 자신의 단말기에 안드로이드 OS를 넣게 된다. 이 때, 단말기마다 지원하는 색상, 처리 방식 등이 달라 원하는 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/y0HGB/btsnXhFfKrj/mslEYFlIdxXnVn9UXyCTVK/img.png)
출처 : 안드로이드 앱스쿨 2기 윤재성 강사님 수업 PPT 📖 Preferences Screen UI를 통해서 Preferences를 사용할 수 있도록 제공되는 개념 PreferenceFragment를 사용하며 저장 기능까지 모두 구현되어 있다. andoridx.preferences를 사용하여 구현한다. 주요 속성(xml / pref.xml) EditTextPreference EditTextPreference(문자열 입력) defaultValue 초기 값 title 화면에 보여지는 이름 key 데이터를 가져올 때 사용하는 이름 summary 표시되는 설명 icon 좌측에 표시될 아이콘 dialogIcon 입력을 위해 뜨는 다이얼로그의 아이콘 dialogTitle 입력을 위해 뜨는 다이얼로그의 타이틀 di..
출처 : 안드로이드 앱스쿨 2기 윤재성 강사님 수업 PPT 📖 Preferences 안드로이드의 저장 방식 중 하나로 애플리케이션의 데이터를 간단하게 저장할 수 있는 수단 많은 양의 데이터를 저장할 때는 SQLite, 소규모의 데이터를 저장할 때 Preferences를 사용할 수 있다. 일반적으로 애플리케이션 설정 데이터와 같이 유일한 데이터들을 기록할 때 Preferences를 사용한다. 예제 코드 - 데이터 저장 button.run { setOnClickListener { // Preferences 객체 추출 // 첫 번째 : 이름 // 두 번째 : MODE_APPEND - 기존 데이터에 추가 해준다. // MODE_PRIVATE - 기존 데이터를 삭제하고 새롭게 저장한다. val pref = get..
출처 : 안드로이드 앱스쿨 2기 윤재성 강사님 수업 PPT 📖 Content Provider 안드로이드 4대 구성 요소 중 하나로 애플리케이션이 저장한 데이터를 다른 애플리케이션이 사용할 수 있도록 제공하는 개념 데이터를 제공하는 앱의 android:authorities를 알아야 사용할 수 있다. 예제 코드 데이터를 제공하는 앱 - AndroidManifest.xml ... ... 데이터를 제공하는 앱 - DBHelper.kt class DBHelper(context: Context) : SQLiteOpenHelper(context, "Test.db", null, 1){ override fun onCreate(db: SQLiteDatabase?) { val sql = """ create table Tes..
출처 : 안드로이드 앱스쿨 2기 윤재성 강사님 수업 PPT 📖 SQLiteDatabase 안드로이드에서 사용하는 내장 데이터 베이스로 표준 SQL문을 사용하는 관계형 데이터 베이스 MySQL과 유사한 문법을 사용하고 있으며 일반적인 관계형 데이터 베이스가 가지고 있는 기능을 가지고 있다. 임베디드형 데이터베이스로써 데이터베이스를 사용하는 애플리케이션에 셋팅되는 데이터 베이스이다. 안드로이드 OS에 내장되어 있으며 개발자가 만드는 애플리케이션은 안드로이드 OS에게 쿼리문을 전달하고 안드로이드 OS가 직접 데이터 베이스에 대한 처리를 하게 된다. 안드로이드에서의 SQLite 사용은 쿼리문을 이용하는 방법과 제공되는 클래스를 사용하는 방법 두 가지가 있다. SQLite OpenHelper 안드로이드에서 SQL..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cDm21Q/btsm8NYBGA0/n4latV7ftusKEiSNRsICtk/img.png)
출처 : 안드로이드 앱스쿨 2기 윤재성 강사님 수업 PPT 📖 assets raw 데이터 파일은 raw 폴더에 담으면 스트림을 쉽게 추출할 수 있다는 장점이 있지만 하위 폴더를 만드는 등 계층적으로 관리할 수 없다는 단점이 있다. 만약 파일들을 계층적인 폴더 구조를 만들어 관리하겠다면 assets 폴더를 사용한다. assets 폴더는 res 폴더 내부가 아니므로 리소스(R 클래스)로 관리할 수 없다. 예제 코드 assets 파일 생성 후 담겨있는 폴더와 데이터 assets/text/data.txt 파일 읽어오기 button.setOnClickListener { // Assets 폴더에 있는 파일과 연결된 스트림 추출 val inputStream = assets.open("text/data.txt") va..