LocationManager와 Geocoder를 사용하여 현재 위치에 대한 주소를 가져오는 예제입니다. 구글맵을 사용하지 않고 현재 위치를 가져오는 방법입니다. 2019. 3. 3 - 최초작성2019. 11. 21 - androidx로 변경 다음 과정으로 실행됩니다. 1. 위치 서비스가 활성화 안되어 있는 경우 설정창을 띄워 사용자가 활성화 할 수 있도록 해줍니다. 2. 위치 퍼미션이 허용안되어 있는 경우 사용자가 허용할 수 있도록 합니다. 허용 후 오른쪽 스크린샷처럼 중앙에 텍스트뷰와 버튼이 보입니다. 3. 버튼을 클릭하면 현재 위치의 위도와 경도를 Toast로 보여주고 텍스트뷰에 현재 위치에 대한 주소를 보여줍니다. 처음 앱을 실행한 경우에는 왼쪽 스크린샷처럼 지오코더가 현재 위치에 대한 주소를 못찾..
Intent를 사용하여 다른 액티비티로 전환하며 데이터를 전달하는 방법을 다룹니다. 인텐트 예제 버튼을 클릭하면 이미지뷰에 있는 이미지와 문자열, 정수, 실수를 두번째 액티비티로 전달합니다. 전환된 두번째 액티비티에서 받아서 데이터를 화면에 보여줍니다. 1. AndroidManifext.xml 매니페스트 파일에서 activity 태그를 사용하여 화면 전환할 액티비티를 추가해줘야 intent에서 해당 액티비티를 인식할 수 있습니다. 2. MainActivity.java 파일입니다. 버튼을 클릭하면 두번째 액티비티로 전환하며 이미지뷰에 있는 이미지와 문자열, 정수, 실수를 전달합니다. Intent객체 생성시 전환할 액티비티를 지정하고 putExtra에 키값과 넘겨줄 데이터를 지정해준 다음 startActiv..
CardView에 모서리가 둥근 ImageView를 꽉채우는 방법과 CardView에 모서리가 둥근 ImageView와 TextView를 함께 추가하는 방법을 소개합니다. RecyclerView의 아이템으로 사용하면 UI가 깔끔해지집니다. 먼저 CardView에 모서리가 둥근 ImageView(RoundedImageView)를 꽉차게 보이도록 하는 방법입니다. CardView 태그 안에 RoundedImageView를 넣고 꽉차게 하기 위해서 RoundedImageView의 android:layout_width 속성과 android:layout_height 속성을 match_parent로 합니다. 그러면 CardView 내부에 꽉차보입니다. CardView의 모서리를 둥글게 만들기 위해서 card_vie..
ScrollView 내부에 ImageView와 TextView를 같이 넣어서 화면 스크롤시 이미지와 텍스트 뷰가 스크롤되도록 구현한 예제입니다. 최초 작성 2019. 2. 21 실행시키면 다음 처럼 동작합니다. 예제를 실행시키면 위에는 이미지가 보이고 아래에는 텍스트가 보입니다. 화면을 위로 스크롤하면 이미지와 텍스트뷰가 같이 이동하면서 스크롤됩니다. 예제 코드를 다음처럼 테스트해 볼 수 있습니다. 1. 앱에서 보여줄 이미지 파일을 드래그하여 res \ drawable 폴더에 넣습니다. 2. activity_main.xml 파일을 다음처럼 작성합니다. ScrollView에 ImageView와 TextView를 같이 넣을 수 없기 때문에 LinearLayout를 사용하여 집어넣습니다. 3. MainActi..
안드로이드 6.0 마시멜로 ( API 23 ) 이상부터 안드로이드 디바이스의 자원을 사용하려면 런타임 퍼미션( runtime permissions)이 필요합니다. 본 포스팅에서는 런타임 퍼미션을 체크하고 요청하는 방법을 설명하고 있습니다. 퍼미션 체크 ActivityCompat.checkSelfPermission(Context, String)퍼미션 요청 ActivityCompat.requestPermissions(Activity, String[], int)퍼미션 요청 콜백함수 ActivityCompat.OnRequestPermissionsResultCallback 카메라, 외부저장소 등에 접근하기 위한 퍼미션 요청을 사용자가 허용해야만 앱에서 해당 하드웨어를 사용할 수 있습니다. . 최초 작성 - 201..
간단한 메시지를 보여주기 위해 사용되는 Snackbar와 Toast의 동작을 비교해보는 예제 코드입니다. Toast는 지정한 일정시간이 지나야 화면에서 사라지지만 Snackbar의 경우에는 사용자의 입력에 반응하여 바로 사라지게 할 수 있습니다. Toast Snackbar Snackbar with Action 전체 소스 코드 1. build.gradle 2. activity_main.xml 3. MainActivity.java 참고 실행결과를 보며 간단히 비교해보겠습니다. 앱을 실행시키면 다음처럼 3개의 버튼을 보여줍니다. Toast TOAST 버튼을 선택하면 하단에 메시지를 보여주며 지정해준 일정시간이 지나면 화면에서 사라집니다. 사용자에게 메시지를 보여주는 역할만 할 수 있습니다. Toast를 화면에..
Recyclerview를 스크롤시 현재 화면에 보여지는 첫번째 데이터 인덱스와 마지막 데이터의 인덱스를 보여주는 테스트해보기 위해 작성되었습니다. 다음 포스팅의 코드를 기반으로 변경 및 추가해야 할 부분만 설명합니다. Android RecyclerView 간단한 예제http://webnautes.tistory.com/1214 FrameLayout을 사용하면 두 개의 UI를 겹쳐보이게 할 수 있습니다. RecyclerView(recyclerview_main_list)와 두개의 TextView를 포함하고 있는 ConstraintLayout를 똑같은 크기로 FrameLayout 안에 배치했습니다. 다음처럼 Recyclerview 상단과 하단에 데이터의 인덱스가 붉은색 글자로 보여지게 됩니다. activity_..
안드로이드 앱에 BottomNavigationView(Bottom Navigation Bar)를 추가하는 방법을 설명합니다. BottomNavigationView(Bottom Navigation Bar) 는 Design Support Library v25에서 추가되었습니다. Bottom Navigation Bar에 있는 버튼을 터치하면 화면 중앙에 있는 TextView에 터치한 버튼을 표시해주는 간단한 예제입니다. 1. Bottom Navigation Bar에 보여줄 버튼 개수만큼의 아이콘이 필요합니다.포스팅에서는 다음 3개의 벡터 이미지(SVG)를 사용했습니다. https://material.io/tools/icons/?icon=search&style=baseline https://material.io..
Android에서 SVG 아이콘을 사용하는 방법을 다룹니다. 1. https://material.io/tools/icons/에서 원하는 아이콘을 찾습니다. 찾은 아이콘을 선택하고나서 왼쪽 아래에 보이는 Selected Icon을 클릭합니다. 2. 아이콘 이미지 아래에 보이는 항목을 Android로 변경합니다. 3. SVG를 클릭하여 다운로드합니다. 4. 프로젝트 창에서 app을 선택하고 마우스 오른쪽 버튼을 클릭합니다.보이는 메뉴에서 New > Vector Asset를 선택합니다. 5. Asset Type 항목에서 Local file(SVG, PSD)를 선택합니다. Path 항목에 있는 … 버튼을 클릭하여 다운로드 받아둔 SVG 이미지 파일을 선택하고 Next 버튼을 클릭합니다. 6. Finish 버튼을..
본 글은 안드로이드에서 AsyncTsak의 개념 및 사용법에 대해 설명합니다. 동기(sync)와 비동기(async)동기적으로 태스크를 실행한 후, 다른 태스크를 실행하려면 먼저 실행된 태스크가 종료되기를 기다려야 합니다. 비동기적으로 태스크를 실행하면 먼저 실행된 태스크가 종료되기 전에 다른 태스크를 실행할 수 있습니다.예를 들어 메인 스레드가 실행되는 중에, 다른 스레드를 백그라운드로 실행시켜 두고 계속 메인스레드는 자신의 작업을 하다가, 이 후 백그라운드에서 돌던 스레드가 종료시 결과값을 받을 수 있습니다. AsyncTask 개념앱이 실행되면 안드로이드 시스템은 메인 스레드를 생성합니다. 이 스레드는 안드로이드 UI 툴키트에 접근합니다. 사용자의 입력을 기다리거나 디바이스 화면에 그리는 작업등을 다룹..