이 튜토리얼에서는 안드로이드 앱에서 SurfaceView(서피스뷰)를 투명하게 만드는 방법을 단계별로 살펴봅니다. 카메라 미리보기나 게임 화면처럼 서피스 위에 다른 UI 요소를 겹쳐 표시해야 할 때 유용하게 활용할 수 있는 기법입니다. SurfaceView 투명화의 핵심 원리 SurfaceView는 일반 View와 달리 별도의 윈도우(Surface)에 직접 그려지기 때문에, 별도 설정 없이 사용하면 검은 배경이 나타납니다. 이를 투명하게 만들려면 다음 두 가지 설정을 함께 적용해야 합니다. setZOrderOnTop(true) —
개요이 튜토리얼에서는 안드로이드 앱에서 SmsManager를 사용해 문자 메시지(SMS)를 전송하는 방법을 단계별로 살펴봅니다. 전화번호와 메시지 내용을 입력한 뒤 전송 버튼을 누르면 SMS가 발송되는 간단한 예제 앱을 직접 만들어 보겠습니다.SMS 발송에는 SEND_SMS 권한이 반드시 필요하므로, 런타임 권한 요청 처리 방법까지 함께 다룹니다.1단계 – 새 프로젝트 만들기Android Studio를 실행하고 File ⇒ New Project를 선택한 후, 필요한 정보를 모두 입력해 새 프로젝트를 생성합니다.2단계 – 레이아웃 작
Android에서 밀리초를 날짜 형식으로 변환하기이 예제는 Android 앱에서 밀리초(millisecond) 단위의 시간 값을 사람이 읽기 쉬운 날짜 형식으로 변환하는 방법을 보여줍니다. Java의 SimpleDateFormat 클래스를 활용하면 아주 간단하게 처리할 수 있습니다.1단계 — 새 프로젝트 생성Android Studio에서 새 프로젝트를 생성합니다. 상단 메뉴에서 File → New Project를 선택하고, 필요한 정보를 모두 입력하여 프로젝트를 만듭니다.2단계 — 레이아웃 파일 작성res/layout/activit
개요이 튜토리얼에서는 Android에서 액티비티가 시작되기 전에 진행률 다이얼로그(ProgressDialog)를 화면에 표시하는 방법을 알아봅니다. 데이터 로딩 등 시간이 걸리는 작업을 수행할 때 사용자에게 진행 상태를 알려주는 것은 좋은 사용자 경험(UX)을 제공하는 데 매우 중요합니다.참고: ProgressDialog는 API 레벨 26(Android 8.0)부터 공식적으로 지원 중단(deprecated)되었습니다. 실제 프로덕션 앱에서는 ProgressBar 위젯이나 DialogFragment를 사용하는 것이 권장되지만, 개념
이 튜토리얼에서는 안드로이드에서 Build.VERSION 클래스를 활용해 현재 기기의 SDK(API) 버전과 OS 릴리스 버전을 프로그래밍 방식으로 확인하고 화면에 출력하는 방법을 단계별로 살펴봅니다. 구현 단계 1단계: 새 프로젝트 생성 Android Studio에서 File → New Project 메뉴로 이동한 뒤, 프로젝트 생성에 필요한 정보를 모두 입력해 새 프로젝트를 만듭니다. 2단계: 레이아웃 파일 작성 res/layout/activity_main.xml 파일에 아래 코드를 추가합니다. 버전 정보를 표시할 TextVie
개요이 튜토리얼에서는 안드로이드 액티비티에서 하단 시스템 내비게이션 바를 영구적으로 숨겨, 마치 게임이나 동영상 플레어처럼 화면 전체를 활용하는 몰입형(Immersive) 전체 화면 모드를 구현하는 방법을 단계별로 살펴봅니다.1단계: 새 프로젝트 생성Android Studio를 실행하고 File ⇒ New Project 메뉴로 이동한 후, 필요한 모든 세부 정보를 입력하여 새 프로젝트를 생성합니다.2단계: 레이아웃 파일 작성res/layout/activity_main.xml 파일에 아래 코드를 추가합니다.<?xml versio
이 예제는 Android 앱에서 상태 표시줄(Status Bar)을 숨기고 전체 화면(Full Screen) 모드로 전환하는 방법을 단계별로 보여줍니다. 게임, 동영상 플레이어, 이미지 뷰어처럼 몰입감 있는 화면이 필요한 앱을 개발할 때 특히 유용하게 활용할 수 있습니다.1단계 — 새 프로젝트 생성Android Studio를 실행한 뒤 File → New Project를 선택하고, 프로젝트 생성에 필요한 모든 세부 정보를 입력하여 새 프로젝트를 만듭니다.2단계 — 레이아웃 파일 수정res/layout/activity_main.xml
이 튜토리얼에서는 안드로이드 앱에서 커스텀 리스트뷰(ListView)에 검색 기능을 구현하는 방법을 단계별로 알아봅니다. 검색창(EditText)에 입력한 텍스트에 따라 리스트 항목이 실시간으로 필터링되도록 만들어 보겠습니다.1단계: 새 프로젝트 생성Android Studio를 열고 File → New Project 메뉴로 이동한 뒤, 새 프로젝트를 생성하는 데 필요한 모든 정보를 입력하여 프로젝트를 만듭니다.2단계: 레이아웃 파일 작성 (activity_main.xml)다음 코드를 res/layout/activity_main.xm
이 예제는 Android 앱에서 흔들림(Shake) 이벤트를 감지하는 방법을 보여줍니다. 스마트폰의 가속도 센서(Accelerometer)를 활용하면 사용자가 기기를 흔들었을 때를 손쉽게 인식할 수 있으며, 이를 응용하면 흔들어서 새로고침하기, 흔들어서 화면 전환하기 같은 다양한 기능을 구현할 수 있습니다.1단계 — 새 프로젝트 생성Android Studio에서 File ⇒ New Project로 이동하여 새 프로젝트를 생성하고, 프로젝트 생성에 필요한 모든 세부 정보를 입력합니다.2단계 — 레이아웃 파일 작성 (res/layout
개요이 튜토리얼에서는 Android 앱에서 알림 대화상자(AlertDialog)가 화면 크기의 정확히 50%를 차지하도록 크기를 조절하는 방법을 단계별로 살펴봅니다. 기본적으로 AlertDialog는 내용에 맞게 자동으로 크기가 조정되지만, WindowManager.LayoutParams를 활용하면 원하는 비율로 직접 설정할 수 있습니다.구현 단계1단계 − 새 프로젝트 생성Android Studio에서 File ⇒ New Project를 선택하고 필요한 정보를 모두 입력하여 새 프로젝트를 생성합니다. 언어는 Java를 기준으로 진행
이 튜토리얼에서는 Android 앱에서 사용자 정의(커스텀) 알림 레이아웃과 텍스트 색상을 적용하는 방법을 단계별로 살펴봅니다. 기본 알림과 RemoteViews를 활용한 커스텀 알림 두 가지 방식을 함께 구현해 보겠습니다.1단계: 새 프로젝트 생성Android Studio를 실행하고 File ⇒ New Project 메뉴로 이동한 뒤, 필요한 모든 세부 정보를 입력하여 새 프로젝트를 생성합니다.2단계: activity_main.xml 작성res/layout/activity_main.xml 파일에 아래 코드를 추가합니다.<?x
안드로이드 기기의 사용 가능한 저장 공간 확인하기 이 튜토리얼에서는 StatFs 클래스를 활용해 Android 기기에서 사용 가능한 저장 공간을 확인하는 방법을 단계별로 살펴봅니다. 외부 저장소의 전체 용량과 내부 데이터 디렉터리의 가용 용량을 계산해 화면에 출력하는 간단한 예제입니다. 1단계 — 새 프로젝트 생성 Android Studio를 실행한 뒤 File → New Project로 이동하고, 프로젝트 생성에 필요한 정보를 모두 입력하여 새 프로젝트를 만듭니다. 2단계 — 레이아웃 작성 (res/layout/activity
안드로이드 앱을 개발하다 보면 센서 데이터, 통계 정보, 사용자 활동 기록 등을 시각적으로 표현해야 하는 경우가 많습니다. 이번 예제에서는 GraphView 오픈소스 라이브러리를 사용하여 안드로이드 앱에서 꺾은선 그래프(Line Graph)를 손쉽게 구현하는 방법을 단계별로 살펴보겠습니다.1단계: 새 프로젝트 생성Android Studio를 실행하고 File → New Project 메뉴로 이동한 후, 빈 Activity(Empty Activity) 템플릿을 선택하여 새 프로젝트를 생성합니다. 필요한 모든 세부 정보(프로젝트 이름,
안드로이드 앱을 개발하다 보면 인터넷에서 이미지를 불러와 화면에 맞게 크기를 조절해야 하는 경우가 자주 있습니다. 이때 Picasso는 Square에서 개발한 대표적인 이미지 로딩 라이브러리로, URL 기반 이미지 로딩과 리사이징을 아주 간단한 코드 한 줄로 처리할 수 있어 많이 사용됩니다.이 글에서는 Picasso의 resize() 메서드를 활용해 이미지 크기를 조절하는 방법을 단계별로 살펴보겠습니다.1단계: 새 프로젝트 생성Android Studio를 실행하고 File → New Project 메뉴로 이동한 뒤, 필요한 정보를
이 튜토리얼에서는 ActivityManager 클래스를 활용해 Android 애플리케이션의 힙(Heap) 크기를 감지하는 방법을 단계별로 살펴봅니다.안드로이드에서는 각 앱에 할당 가능한 메모리(힙) 한도가 정해져 있으며, getMemoryClass() 메서드를 호출하면 현재 앱에 허용된 힙 크기를 메가바이트(MB) 단위로 확인할 수 있습니다. 대용량 이미지 처리나 캐싱 작업을 수행하기 전에 이 값을 미리 파악해 두면 OutOfMemoryError를 예방하는 데 큰 도움이 됩니다.구현 단계1단계 — 새 프로젝트 생성Android St
이 튜토리얼에서는 안드로이드 앱에서 ListView를 동적으로 업데이트하는 방법을 단계별로 살펴봅니다. 사용자가 EditText에 항목을 입력하고 버튼을 누르면 해당 항목이 ListView에 실시간으로 추가되는 간단한 예제를 함께 만들어 보겠습니다.핵심 원리는 매우 간단합니다. 데이터 목록(ArrayList)에 새 값을 추가한 뒤, 어댑터의 notifyDataSetChanged() 메서드를 호출하면 ListView가 변경된 데이터를 자동으로 다시 그려줍니다.1단계: 새 프로젝트 생성Android Studio를 실행한 후 File →
이 튜토리얼에서는 안드로이드 앱에서 휴대폰을 흔들면 화면을 새로고침하는 기능을 구현하는 방법을 단계별로 알아봅니다. 가속도 센서(Accelerometer)를 활용해 흔들기 동작을 감지하고, 이를 원하는 기능과 연결할 수 있습니다.1단계: 새 프로젝트 생성Android Studio를 실행한 후 File → New Project 메뉴로 이동하여 새 프로젝트를 생성합니다. 필요한 모든 세부 정보를 입력하고 프로젝트 설정을 완료하세요.2단계: 레이아웃 파일 작성 (res/layout/activity_main.xml)아래 코드를 activi
개요이 예제는 BroadcastReceiver를 활용하여 블루투스 기기가 안드로이드 기기에 연결되어 있는지, 아니면 연결이 해제되었는지를 실시간으로 감지하는 방법을 보여줍니다.안드로이드 시스템은 블루투스 연결 상태가 바뀔 때마다 시스템 브로드캐스트를 발생시키며, 대표적인 액션은 다음과 같습니다.ACTION_ACL_CONNECTED — 블루투스 기기가 연결되었을 때 발생ACTION_ACL_DISCONNECT_REQUESTED — 연결 해제가 요청되었을 때 발생ACTION_ACL_DISCONNECTED — 블루투스 기기 연결이 해제되었
Android 앱에서 내부/외부 메모리 여유 공간 구하기이 튜토리얼에서는 Android 앱에서 기기의 내부 및 외부 저장소(메모리)의 여유 공간을 확인하는 방법을 단계별로 알아봅니다. StatFs 클래스를 활용하면 저장소의 전체 크기와 사용 가능한 용량을 손쉽게 조회할 수 있습니다.1단계 — 새 프로젝트 생성Android Studio를 실행한 뒤, 상단 메뉴에서 File → New Project를 선택하고 필요한 정보를 모두 입력하여 새 프로젝트를 생성합니다.2단계 — 레이아웃 파일 작성 (res/layout/activity_mai
안드로이드 앱에서 Base64 문자열을 비트맵(Bitmap) 이미지로 변환하는 방법이 예제는 안드로이드에서 Base64로 인코딩된 문자열을 비트맵 이미지로 변환하는 방법을 단계별로 보여줍니다. 서버와 통신하거나 데이터베이스에 이미지를 저장할 때 이미지를 Base64 문자열 형태로 주고받는 경우가 많은데, 이를 다시 화면에 표시할 수 있는 비트맵으로 디코딩하는 과정을 함께 살펴보겠습니다.1단계 — 새 프로젝트 생성Android Studio에서 File → New Project로 이동한 뒤, 프로젝트 생성에 필요한 모든 정보를 입력하여