Android 앱에서 배경 음악을 재생하는 방법 이 튜토리얼에서는 Service와 MediaPlayer를 활용해 Android 앱에서 배경 음악을 재생하는 방법을 단계별로 살펴봅니다. 사용자가 다른 화면으로 이동하거나 앱을 최소화한 상태에서도 음악이 계속 흐르게 하려면, UI와 독립적으로 동작하는 백그라운드 컴포넌트인 서비스(Service)가 필요합니다. 1단계 — 새 프로젝트 생성 Android Studio에서 File → New Project 메뉴로 이동한 후, 필요한 정보를 모두 입력하여 새 프로젝트를 생성합니다. 2단계
이 튜토리얼에서는 안드로이드에서 SlidingDrawer가 기본 설정인 아래 방향이 아니라 화면 왼쪽에서 슬라이드되어 열리도록 구현하는 방법을 단계별로 살펴봅니다.핵심 원리는 간단합니다. SlidingDrawer 자체와 내부 콘텐츠에 android:rotation=180 속성을 적용하고, 핸들(손잡이) 이미지에는 android:rotation=270을 적용하면 드로어의 방향이 회전되어 왼쪽에서 밀려 나오는 형태로 동작하게 됩니다.참고: SlidingDrawer는 API 17(안드로이드 4.2)부터 공식적으로 지원 중단(depreca
이 튜토리얼에서는 안드로이드 앱에서 ListView 내부에 포커스(focus)를 받을 수 있는 EditText를 구현하는 방법을 단계별로 살펴봅니다. ListView의 각 항목에 EditText를 배치하면 사용자가 목록 항목을 직접 편집할 수 있어, 입력 폼이나 메모 목록 등 다양한 UI에서 활용도가 매우 높습니다. 핵심 개념 정리 ListView 안에 EditText처럼 포커스를 받는 뷰를 넣으려면 다음 두 가지 설정이 반드시 필요합니다. setItemsCanFocus(true) — 리스트 항목 자체가 포커스를 가질 수 있도록
이 튜토리얼에서는 안드로이드 앱 개발 시 Drawable을 Bitmap으로 변환하는 방법을 단계별로 알아봅니다. 이미지 리소스를 픽셀 단위로 처리하거나 편집해야 할 때 자주 사용되는 기법이므로, 전체 예제 코드와 함께 자세히 살펴보겠습니다. Drawable과 Bitmap의 차이점 안드로이드에서 Drawable은 화면에 그릴 수 있는 모든 그래픽 요소를 추상화한 개념입니다. 반면 Bitmap은 실제 픽셀 데이터로 구성된 이미지 객체로, 픽셀 조작, 파일 저장, 캔버스에 직접 그리기 등의 작업에 적합합니다. 따라서 이미지 편집 기능이나
이 튜토리얼에서는 안드로이드 앱에서 이미지에 확대·축소(핀치 줌) 기능을 구현하는 방법을 단계별로 소개합니다. 두 손가락으로 화면을 벌리거나 오므리는 제스처를 감지해 이미지 크기를 자연스럽게 조절할 수 있으며, ScaleGestureDetector 클래스를 활용하는 것이 핵심입니다.1단계 — 새 프로젝트 생성Android Studio에서 File → New Project 메뉴로 이동한 후, 필요한 모든 세부 정보를 입력하여 새 프로젝트를 생성합니다.2단계 — 레이아웃 작성 (res/layout/activity_main.xml)먼저
안드로이드 앱에 구글 검색 기능 추가하기이 예제는 안드로이드 애플리케이션에 구글 검색 기능을 추가하는 방법을 단계별로 보여줍니다. 사용자가 입력한 검색어를 안드로이드의 내장 웹 검색 인텐트(Intent.ACTION_WEB_SEARCH)를 통해 구글 검색으로 연결하는 간단하면서도 실용적인 예제입니다.1단계: 새 프로젝트 생성Android Studio를 실행한 뒤, 상단 메뉴에서 File → New Project를 선택하여 새 프로젝트를 생성합니다. 프로젝트 생성에 필요한 모든 세부 정보를 입력하고 진행하세요.2단계: 레이아웃 파일 작
이 튜토리얼에서는 안드로이드에서 가로 방향으로 스크롤되는 수평(Horizontal) ListView를 만드는 방법을 단계별로 알아봅니다. 안드로이드에서는 일반적으로 RecyclerView의 LayoutManager를 LinearLayoutManager.HORIZONTAL로 지정하여 가로 스크롤 리스트를 손쉽게 구현할 수 있습니다.Step 1 — 새 프로젝트 생성 및 의존성 추가Android Studio에서 새 프로젝트를 생성합니다. 메뉴에서 File ⇒ New Project를 선택하고, 프로젝트 생성에 필요한 모든 세부 정보를 입력
Android에서 화면 방향 변경 감지하기 이 튜토리얼에서는 Android 앱에서 레이아웃의 방향(세로 모드·가로 모드) 변경을 감지하고, 이에 맞춰 동작을 처리하는 방법을 단계별로 알아봅니다. 핵심 원리는 간단합니다. onConfigurationChanged() 콜백 메서드를 오버라이드하여 새로운 설정 값의 방향을 확인하고, 매니페스트 파일에 android:configChanges 속성을 지정하면 됩니다. 그럼 전체 구현 과정을 살펴보겠습니다. 1단계 — 새 프로젝트 생성 Android Studio를 실행한 뒤 File ⇒ Ne
이 예제는 Android에서 AudioTrack 클래스를 사용하여 임의의 톤(음성 신호)을 직접 생성하고 재생하는 방법을 보여줍니다. 오디오 파일 없이 순수하게 수학적 계산만으로 소리를 만들어내는 원리를 단계별로 살펴보겠습니다.1단계 – 새 프로젝트 생성Android Studio를 실행한 후 File ⇒ New Project 메뉴로 이동하여 새 프로젝트를 생성합니다. 필요한 모든 세부 정보를 입력하고 프로젝트 설정을 완료하세요.2단계 – 레이아웃 파일 작성 (res/layout/activity_main.xml)아래 코드를 res/l
안드로이드 앱을 개발하다 보면 사용자가 리스트를 어느 방향으로 스크롤하는지 감지해야 하는 경우가 자주 있습니다. 예를 들어 아래로 스크롤할 때는 툴바를 숨기고, 위로 스크롤할 때는 다시 보여주는 식의 UI 동작에 활용할 수 있습니다.이 글에서는 AbsListView.OnScrollListener를 활용해 Android ListView에서 위로 스크롤과 아래로 스크롤을 감지하는 방법을 단계별로 살펴보겠습니다.핵심 원리스크롤 방향 감지의 핵심은 onScroll() 콜백에서 전달되는 firstVisibleItem 값을 추적하는 것입니다.
안드로이드 TextureView에서 동영상 재생하기TextureView는 안드로이드에서 동영상이나 카메라 미리보기 같은 콘텐츠 스트림을 화면에 표시할 수 있는 뷰입니다. SurfaceView와 달리 일반 뷰처럼 변형(회전, 확대/축소)과 애니메이션을 적용할 수 있어 유연한 UI 구성에 유리합니다. 이 글에서는 MediaPlayer와 함께 TextureView를 사용해 로컬 동영상을 재생하는 방법을 단계별로 살펴보겠습니다.1단계: 새 프로젝트 생성Android Studio를 열고 File → New Project 메뉴로 이동한 뒤,
안드로이드에서 10초마다 메서드 반복 실행하기이 튜토리얼에서는 안드로이드 앱에서 Handler와 Runnable을 활용해 특정 메서드를 10초(10,000밀리초) 간격으로 반복 실행하는 방법을 단계별로 알아봅니다. 이 기법은 주기적으로 데이터를 새로고침하거나 UI를 업데이트해야 하는 상황에서 매우 유용하게 사용됩니다.1단계: 새 프로젝트 만들기Android Studio에서 File → New Project를 선택한 뒤, 필요한 정보를 모두 입력하여 새 프로젝트를 생성합니다.2단계: 레이아웃 파일 수정res/layout/activit
안드로이드 헤드셋 연결 상태 감지하기 이 예제는 BroadcastReceiver와 시스템 브로드캐스트인 ACTION_HEADSET_PLUG를 활용해 안드로이드 기기에 유선 헤드셋(이어폰·마이크)이 연결되어 있는지 확인하는 방법을 보여줍니다. 헤드셋이 연결되거나 분리될 때마다 시스템은 ACTION_HEADSET_PLUG 브로드캐스트를 발생시키며, 함께 전달되는 state 값(0 = 분리됨, 1 = 연결됨)으로 현재 상태를 판별할 수 있습니다. 1단계 — 새 프로젝트 생성 Android Studio에서 File ⇒ New Project
이 글에서는 프로그래밍 방식으로 안드로이드 내비게이션 바(하단 탐색 모음)의 높이와 너비 값을 가져오는 방법을 단계별로 살펴봅니다. 내비게이션 바의 크기는 기기 제조사와 해상도에 따라 달라지기 때문에, UI 요소를 정교하게 배치해야 할 때 이 값을 동적으로 조회하면 매우 유용합니다. 1단계 — 새 프로젝트 만들기 Android Studio를 실행한 뒤 File → New Project 메뉴로 이동하여 새 프로젝트를 생성하고, 필요한 정보를 모두 입력합니다. 2단계 — 레이아웃 작성(activity_main.xml) res/layou
안드로이드에서 다이얼로그를 전체 화면으로 표시하는 방법 이 튜토리얼에서는 안드로이드 앱에서 다이얼로그(Dialog)를 전체 화면으로 표시하는 방법을 단계별로 살펴봅니다. 기본 다이얼로그는 화면의 일부만 차지하지만, 시스템 테마 스타일을 활용하면 별도의 복잡한 설정 없이도 손쉽게 전체 화면 크기로 확장할 수 있습니다. 1단계 — 새 프로젝트 생성 Android Studio를 실행한 후 File ⇒ New Project 메뉴로 이동하고, 새 프로젝트 생성에 필요한 모든 정보를 입력하여 프로젝트를 만듭니다. 2단계 — activity
이 튜토리얼에서는 안드로이드 앱에서 ImageView에 표시된 이미지를 지우는 방법을 단계별로 살펴봅니다. 버튼을 클릭하면 ImageView의 배경 드로어블이 제거되어 화면에서 이미지가 사라지는 간단한 예제입니다.핵심 원리ImageView의 이미지를 지우는 핵심은 배경 드로어블을 null로 설정하는 것입니다. 자바 코드에서는 다음과 같이 처리합니다.imageView.setBackgroundDrawable(null);참고: setBackgroundDrawable()은 API 16부터 deprecated되었습니다. 최신 프로젝트에서는
이 튜토리얼에서는 안드로이드에서 이미지를 Base64 문자열로 변환하는 방법을 단계별로 살펴봅니다. Base64 인코딩은 이미지 데이터를 텍스트 형태로 변환해 주기 때문에 서버 전송, 데이터베이스 저장, JSON 응답 처리 등 다양한 상황에서 유용하게 활용됩니다. 1단계 — 새 프로젝트 만들기 Android Studio에서 새 프로젝트를 생성합니다. 상단 메뉴에서 File → New Project를 선택한 뒤, 프로젝트 생성에 필요한 세부 정보를 모두 입력합니다. 2단계 — 레이아웃 파일 수정 res/layout/activity_m
이 튜토리얼에서는 안드로이드 앱에서 버튼을 누르면 지정한 전화번호가 미리 입력된 상태로 기본 다이얼러 화면이 열리도록 구현하는 방법을 단계별로 알아봅니다. 실제 발신 전에 번호를 확인할 수 있어 사용자 경험 측면에서도 유용하게 활용되는 패턴입니다. 1단계 — 새 프로젝트 생성 Android Studio를 실행하고 메뉴에서 File ⇒ New Project를 선택한 뒤, 새 프로젝트 생성에 필요한 정보를 모두 입력하여 프로젝트를 만듭니다. 2단계 — 레이아웃 파일(activity_main.xml) 작성 res/layout/activi
GridView 스크롤 비활성화 개요이 튜토리얼에서는 안드로이드 앱에서 GridView의 스크롤 기능을 비활성화하는 방법을 단계별로 살펴봅니다. GridView를 ScrollView나 다른 스크롤 가능한 레이아웃 내부에 배치할 때 중첩 스크롤 문제가 발생하곤 하는데, 이럴 때 GridView 자체의 스크롤을 막으면 유용합니다.핵심 아이디어는 간단합니다. GridView에 OnTouchListener를 설정하고, 터치 이동(ACTION_MOVE) 이벤트가 발생했을 때 true를 반환하여 스크롤 동작을 가로채는 것입니다.Step 1 —
이 튜토리얼에서는 안드로이드 앱에서 원형 커스텀 진행률 표시줄(Circular Custom Progress Bar)을 구현하는 방법을 단계별로 알아봅니다. XML 드로어블(Drawable)과 자바 코드만으로 별도의 라이브러리 없이 부드럽게 애니메이션되는 원형 프로그레스바를 만들 수 있습니다.1단계: 새 프로젝트 생성Android Studio에서 File → New Project를 선택하고, 새 프로젝트를 생성하는 데 필요한 모든 정보를 입력하여 프로젝트를 만듭니다.2단계: 레이아웃 파일 작성 (activity_main.xml)res