안드로이드: 196개의 글
1. Marker Marker는 Google Map에서 사용하는 가장 일반적인 객체입니다. 주로 정해진 위치에 표시하며, 아이콘, 타이틀, 내용, 투명도 등의 설정이 가능합니다. 아래 가이드는 Google APIs for Android의 마커 가이드를 참조한 것입니다. 예제에서는 가장 많이 사용되는 Position, Title,Snippet, Alpha, Icon만 다루겠습니다. Position 위치(필수)지도에서 마커의 위치에 대한 LatLng 값입니다. 이는 Marker 객체의 유일한 필수 속성입니다. Anchor 앵커마커의 LatLng 위치에 배치될 이미지의 지점. 기본값은 이미지의 하단 중앙입니다. Alpha 알파마커의 투명도를 설정합니다. 기본값은 1.0입니다. Title 제목사용자가 마커를 눌..
1. Adnroid Google Maps Android에서는 개발자에게 다양한 API를 제공하는데 Google Map API가 그 중 하나입니다. Google Map API를 사용하기 위해서는 Key를 발급 받아야 하는데 그 내용은 이전 포스팅에서 다뤘습니다. 그럼 Google Map은 무엇이며 어떻게 사용될까요? Google Map은 Google에서 제공하는 일종의 세계 지도이며, 세계 곳곳에 나타낼 수 있는 모든 지역 정보들이 담겨있습니다. 또한 위도, 경도를 통해 특정 위치에 '마커'를 표시할 수 있으며, 'TITLE'도 설정할 수 있습니다. 다른 위젯들 처럼 이벤트 처리도 가능하며, Google Developers에서 제공하는 'Map 유틸리티'를 통해 다양한 기능도 구현할 수 있습니다. 아래 그..
1. Google API Key Android Developers에서는 Android 개발자에게 다양한 API를 제공합니다. 누구나 사용할 수 있으며, 쉽게 사용할 수 있습니다. 하지만 오늘 다룰 Google Map API를 사용하기 위해서는 Key를 발급 받아야합니다. 절대 어렵거나 복잡하지 않습니다. Key 생성 후 설정을 통해 아래 그림과 같이 Key 사용 범위를 제한 할 수도 있습니다. [그림 1] Google API Key 사용 제한 2. Key 발급 받는 과정 과정이 어렵지 않으므로 순서대로 잘 따라하시면 됩니다. 과정 1) 'Google API Console' 접속.과정 2) 'Google Maps Android API' 선택.과정 3) '프로젝트 생성' : 단순히 키를 갖고 있는 프로젝트...
오늘은 Android와 JAVA에서 JSONObject를 다루는 방법에 대해 포스팅하겠습니다. JSONObject는 데이터를 주고 받을때 유용하며 데이터에 대한 정보가 String형태로 이동될 때도 유용하게 사용할 수 있습니다. 필자는 안드로이드와 웹, DB간의 통신을 하기 위해 주고 받는 데이터를 JSON 객체를 통해 주고받으며 좀 더 일관성있고 기능적이게 데이터를 다루었습니다. 1. 데이터 처리 안드로이드에서는 SQLite라고 불리는 내부 DB를 통해 데이터를 저장하고 불러온다. 하지만 실시간으로 변하는 데이터나 다른 사용자의 데이터를 불러오기 위해서는 서버를 통한 DB통신이 필요하다. 이와 같은 상황에선 SQLite만으로 해결할 수 없고 외부 DB를 사용해야한다. 주로 MySQL에나 Oracle를 ..
1. 안드로이드의 서버 통신 안드로이드는 서버와 통신하기 위한 방법으로는 HTTP통신과 Soket통신이 있다. 오늘 다룰 내용은 HTTP통신으로 URL 접속을 통해 데이터를 읽어오는 방법이다. 우리는 주로 DB에 존재하는 데이터를 가져오기 위해 서버 통신을 한다. 하지만 안드로이드의 특성상 외부 DB에 직접 접근할 수 가 없도록 되어있어 중간 매체인 WEB을 활용해야한다. 이해를 위해 그림으로 쉽게 표현했다. [그림 1] 안드로이드와 WEB, 그리고 DB 통신 과정 안드로이드 통신은 보통 위와 같이 이뤄지며 본 포스팅에서는 'ANDROID-WEB'의 통신 방법에 대해 다룰 것이다. 우선 막연하게 WEB이라고만 하면 정확히 어떤 것을 말하는 것인지 헷갈릴 수 있다. 여기서 말하는 WEB은 HTML, JSP..
본 포스팅은 안드로이드 디벨로퍼스(https://developer.android.com/training/permissions/requesting.html?hl=ko#perm-check)를 참고하여 작성하였습니다. 안녕하세요. PEACE-입니다. 오늘은 퍼미션 관련 정의와 체크에 대해 간단하게 짚고 넘어가겠습니다. 안드로이드 버전 6.0(Marshmallow) 부터는 안드로이드 폰에 대한 권한 설정이 엄격해졌습니다. 이전에는 메니페스트에서 퍼미션만 추가해주면 됐지만, 또 다른 방법으로 처리를 해야합니다. 매우 불편할지도 모르지만, 안드로이드 폰을 사용하는 사용자를 위한 작업이니 따를 수 밖에 없다고 생각합니다. 1. 권한 체크 사이클 예 * 권한 필요 -> 권한 체크 -> 권한 요청 -> OK (BY US..
1. 메인쓰레드(UI Thread)와 비동기 처리 우리가 사용하는 안드로이드 어플리케이션에서 UI(버튼, 리스트, 텍스트뷰 등등..)는 UI쓰레드라고 불리는 메인쓰레드가 관여하고 처리한다. 그렇다면 우리가 만든 버튼을 통해 어떠한 작업을 수행한다면 메인쓰레드는 어떻게 처리할까? 우선 하나의 상황을 통해 설명하려한다. '777APP'이라는 어플리케이션에 '다운로드'와 '페이지 닫기'라는 두 개의 버튼이 구성되어있다. 그리고 다운로드 버튼을 클릭해 해당 파일을 다운로드 하려한다. 이때 메인쓰레드가 수행하도록 코드를 구성했다면 버튼에 대한 처리는 메인쓰레드가 할 것이며, 다운로드하는 처리도 메인쓰레드가 할 것이다. 또한 다운로드 받는 동안 타 UI와의 교류가 비활성화 될 것이다. 쉽게말해 '다운로드' 버튼과 ..
Android Intent를 통해 Activity, Service, BroadCast 등 여러 구성요소 사이에서 통신을 용이하게해줍니다. 오늘은 Acitivity사이에서 통신하는 명시적 Intent에 대해 알아보겠습니다. 1. Intent Intent는 일종의 메시지 객체이다. Intent를 통해 Activity의 새 인스턴스를 시작하는 방법은 여러가지가 있다. 우선 Activity의 새 인스턴스(다른 액티비티 시작)를 시작하려면 Intent를 startActivity()로 전달해야한다. 새 인스턴스에 데이터를 넘겨주기 위해서는putExtra() 메서드를 이용한다. 또한 이전 Activity로 돌아와서 수행 결과를 받으려면 startActivity()를 통해 Activity의 새 인스턴스를 시작하고 se..
1. 스피너란? 안드로이드에서 스피너는 핵심 기능으로 사용되기 보다는 사용자 UI로써 일련의 작업 과정에 속하는 일이 많습니다. 예를들면 회원가입 시 생년월일이나 지역을 선택하는 과정에서 쓰입니다. 아래 그림은 스피너 쓰임의 예를 보여줍니다. [그림 1] 회원 가입 시 스피너의 사용 예 2. 스피너 생성 스피너의 생성 시 사용되는 네임은 Spinner입니다. in activity_main.xml 3. ArrayAdapter 사용 기본적으로 ArrayAdapter는 현재 Context(1)와 사용할 LayoutResource(2), Array(or ArrayList)(3)를 받아 스피너를 만들어줍니다. ArrayAdapter 객체를 생성하는 방법은 아래와 같다. [그림 2] ArrayAdapter 객체 생..
1. CustomListView Event Listener 구현 방법 지난 '커스텀 리스트뷰 구현' 포스팅에서 '메인액티비티-어댑터-아이템클래스'를 연결하여 커스텀 리스트뷰를 구현했습니다. 하지만 좀 더 기능적인 앱 구현을 돕기 위해 각 위젯에 대한 클릭 이벤트를 발생 시키는 방법을 알려드리려합니다. [그림 1] 커스텀 리스트 뷰의 각 리스트의 위젯에 대한 클릭 이벤트 처리 리스너 구현 방법에 대한 방법을 설명 드리겠습니다. 커스텀 리스트뷰를 구현할때 어댑터클래스에 BaseAdapter를 상속받아 재정의 했던 메서드 중에 getView()라는 메서드가 있었습니다. 이 메서드는 생성되는 n개의 리스트 수 만큼 실행되어 각각의 위젯을 참조하고 설정합니다. 즉 커스텀 리스트뷰를 띄우기 위해 getView()를..