RecyclerView에 GridLayoutManager를 적용하여 그리드를 만든 후 이미지 크기가 일정하게 보이지 않는 문제를 해결했습니다. 1. RelativeLayout를 상속한 SquareLayout 클래스를 추가합니다. package com.tistory.webnautes.imagesaveinsqlite; import android.annotation.TargetApi; import android.content.Context; import android.os.Build; import android.util.AttributeSet; import android.widget.RelativeLayout; /** * Created by Lincoln on 05/04/16. */ class SquareLa..
RecyclerView를 사용하는데 익숙하다면 그리드뷰를 금방 만들 수 있습니다. Android RecyclerView 간단한 예제https://webnautes.tistory.com/1214 기존에 사용하던 LinearLayoutManager 대신에 GridLayoutManager 를 사용하도록 해주면 됩니다. //private LinearLayoutManager mLinearLayoutManager; private GridLayoutManager mGridLayoutManager; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . // mLinearLayoutManager = new ..
이미지뷰에 사진을 넣었을때 상하에 공백이 생기는 문제가 생길 수 있습니다. 세로 방향의 이미지는 문제가 없는데 가로로 회전된 이미지만 이런 현상이 발생합니다. 레이아웃 파일의 ImageView에 android:adjustViewBounds="true"를 추가해주면 문제가 해결됩니다. 위아래에 있는 공백이 제거됩니다. 참고 https://stackoverflow.com/a/26840345
USB 케이블 없이 WiFi를 사용하여 안드로이드 스튜디오에서 안드로이드 디바이스를 디버깅 및 앱 설치하는 방법을 설명합니다.처음 연결시에는 USB 케이블이 필요하고 이후 WiFi로 연결되는 방식입니다. 1. 안드로이드 스튜디오의 메뉴에서 File > Settings를 선택합니다. 2. 왼쪽 리스트에서 Plugins를 선택합니다. 3. 아래쪽에 보이는 Browse repositories를 클릭합니다. 4. android wifi adb를 검색하여 선택하고 오른쪽에 보이는 Install 버튼을 클릭합니다. 5. Accept를 클릭하고 안드로이드 스튜디오를 재시작합니다. 6. 안드로이드 스튜디오의 오른쪽 위에 보이는 Android WiFi ADB를 클릭합니다. 7. USB 케이블을 사용하여 안드로이드 폰을 ..
안드로이드 갤러리에 있는 JPG 이미지 파일을 PC의 자바 서버 프로그램으로 전송하는 예제입니다. 최근들어 관련 질문이 많아져서 만들어봤습니다. 참고하세요. 기존 포스팅의 코드를 수정해서 사용해야 합니다. 우선 다음 포스팅을 해본 후 이번 포스팅을 이어서 진행하세요. Android와 PC JAVA 프로그램 간 블루투스 통신 예제http://webnautes.tistory.com/849 최초 작성 - 2018. 9. 13 실행 결과1. 자바 서버 프로그램을 먼저 실행해둡니다. [Thu Sep 13 13:01:05 KST 2018] Local Bluetooth device... BlueCove version 2.1.1-SNAPSHOT on winsock [Thu Sep 13 13:01:06 KST 2018]..
HC-05 / HC-06 블루투스 모듈을 연결한 아두이노 우노와 안드로이드 앱간 블루투스 통신하는 방법을 다루고 있습니다. 1. Arduino Uno와 Android 폰간의 페어링 2. LED 제어 테스트 3. 채팅 테스트 마지막 업데이트 - 2018. 8. 30 진행하기 전에 다음 두 포스팅을 먼저 확인하세요. 1. 아래 포스팅에 있는 안드로이드 앱 소스 코드를 사용하여 폰에 앱을 설치해주세요. Android와 PC JAVA 프로그램 간 블루투스 통신 예제http://webnautes.tistory.com/849 2. 아래 포스팅을 참고하여 아두이노 우노와 HC-05 / HC-06 블루투스 모듈을 연결해주세요. Arduino Uno에 HC-05 / HC-06 Bluetooth 모듈 연결하여 사용하는 방..
안드로이드 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..