본문 바로가기

Android/Concepts51

Splash 화면 구현하기 Splash 화면이란? 앱을 실행하면 앱의 아이콘이나 간단한 이미지가 들어간 화면이 잠깐 뜨는 경우가 있다. 이 화면을 Splash 화면이라 하며, 어떤 앱인지를 나타내거나 앱을 실행하기 위한 준비를 하기 위해 사용하기도 한다. 구현 방법 일반적으로 Splash 화면을 액티비티로 만들어 일정 시간 후 MainActivity를 띄워주는 방법을 많이 사용한다. 이를 위해 app 우클릭 후 new - Activity - Empty Activity 를 눌러 새 Empty Activity를 생성하자. 그리고 원하는 화면으로 layout을 꾸며보자. 이제 manifest로 가서 intent-filter 내용들을 MainActivity에서 SplashActivity로 옮겨 시작 액티비티를 바꿔주자. SplashAct.. 2020. 5. 8.
Page Sliding 구현하기 Page Sliding이란? Navigation Drawer와 같이 화면이 왼쪽이나 오른쪽에서 스르륵 나오도록 구현하려면 어떻게 해야할까? 이런 기능을 Page Sliding이라고 하며, 레이아웃 위에 다른 레이아웃을 중첩시켜 표현하게 된다. 일반적인 상황에는 중첩된 레이아웃을 숨겨놓았다가 애니메이션과 함께 보여주면 된다. ※ 애니메이션이 사용되므로 애니메이션을 모른다면 미리 아래 글을 통해 참고하자. Animation 사용법 Tween Animation이란? Thread Animation의 경우 애니메이션을 구현하려면 프레임당 1장씩 많은 양의 이미지가 필요하다. 이 때문에 단순히 이미지가 움직일 경우 이미지의 위치를 바꿔 뿌려주는 것이 자원을 아낄.. ju-hy.tistory.com 구현 방법 먼저 .. 2020. 5. 8.
Animation 사용법 Tween Animation이란? Thread Animation의 경우 애니메이션을 구현하려면 프레임당 1장씩 많은 양의 이미지가 필요하다. 이 때문에 단순히 이미지가 움직일 경우 이미지의 위치를 바꿔 뿌려주는 것이 자원을 아낄 수 있다. 이렇게 이미지를 행렬 연산을 통해 이동, 확대, 축소하여 구현한 애니메이션을 Tween Animation이라고 한다. Tween Animation은 미리 움직이는 정보를 anim 폴더에 xml 파일로 미리 구현해놓고, 이를 뷰에 적용하여 사용한다. 애니메이션으로 구현할 수 있는 동작으로는 이동, 확대/축소, 회전, 투명도 변화가 있다. 그럼 각각의 사용법을 알아보자. 사용법 기본적으로 모든 애니메이션을 실행하는 방법은 똑같다. 먼저 res 폴더에 anim 폴더를 만들어.. 2020. 5. 7.
Thread Animation 만들기 Thread Animation이란? 애니메이션을 앱에서 구현하려고 한다면 어떤 방식으로 구현해야 할까? 예전 만화에서는 여러 장의 사진을 그리고 이 사진들을 빠르게 바꿔서 마치 사진이 움직이는 것처럼 구현하였다. 안드로이드에서 Thread를 이용하여 ImageView를 계속 바꿔준다면 이와 같이 구현할 수 있을 것이다. 이렇게 Thread를 이용하여 이미지를 바꾸어 표현한 애니메이션을 Thread Animation이라고 한다. 사용법 Resources res = getResources(); ArrayList imageList = new ArrayList(); imageList.add(res.getDrawable(R.drawable.icon1)); imageList.add(res.getDrawable(R... 2020. 5. 7.
RecyclerView 사용법 RecyclerView란? RecyclerView란 기본적으로 여러 가지 아이템을 나타내는 면에서는 ListView와 비슷하다. 하지만 ListView의 경우 위 아래 수직 방향으로만 아이템을 배열할 수가 있다. 아이템을 좌우 방향으로 스크롤하여 보여주고 싶다면 RecyclerView를 사용하면 된다. RecyclerView는 이렇게 좌우 방향 스크롤 뿐만 아니라 ListView에 비해 좀 더 확장 가능한 기능을 제공한다. 따라서 ListView와 같은 단순한 형태보다 조금 더 복잡한 기능이 필요할 때 사용하면 된다. 또한 RecyclerView는 ViewHolder를 기본적으로 사용하게 되어있다. ViewHolder란 아이템을 스크롤하여 뷰를 띄워줄 때 매번 inflate하지 않고 저장해두고 사용하기 .. 2020. 5. 4.
MediaRecorder로 Audio 녹음하기 안드로이드에서는 녹음 및 녹화 기능을 위해 MediaRecorder를 제공하고 있다. MediaRecorder를 사용해 녹음을 할 때는 오디오 재생보다 조금 더 복잡한 과정이 필요하다. 하나씩 구현해보면서 필요한 작업들을 알아보자. 사용법 먼저 manifest에 녹음을 위한 권한과 녹음한 파일을 저장하고 읽기 위한 권한을 설정해준다. ※ 이 권한들은 위험 권한이기 때문에 API 23 버전부터는 권한 허용 코드를 구현해주어야 한다. 아래 글 참고. https://ju-hy.tistory.com/51 Permission 획득하기 일반 권한과 위험 권한 기본적으로 특정 권한을 획득하기 위해서는 Manifest에 요청할 권한을 추가하기만 하면 된다. 예전에는 이런 권한들을 앱 설치 수락 과정에서 모두 획득이 가.. 2020. 5. 4.
MediaPlayer로 Audio와 Video 파일 재생하기 안드로이드에서는 음악이나 동영상 같은 미디어 파일을 재생할 수 있도록 MediaPlayer를 제공하고 있다. MediaPlayer를 이용하여 Audio 파일과 Video 파일을 재생하는 법을 알아보자. Audio 재생하기 MediaPlayer player; int position = 0; 먼저 MediaPlayer 객체와 일시정지 시 위치를 기록할 position 변수를 전역 변수로 선언해주자. ※ 인터넷으로부터 파일을 받아와 재생한다면 manifest에 INTERNET 권한도 추가해주자. Play public void playAudio(){ try { closePlayer(); player = MediaPlayer.create(this, R.raw.sample_audio); player.start();.. 2020. 5. 3.
Camera를 이용하여 사진 촬영 및 저장하기 앱에서 사진을 촬영하여 얻기 위한 방법은 여러가지가 있다. 첫번째 방법은 사진 앱에 사진 촬영을 요청한 뒤 촬영된 jpeg 파일을 가져와 처리하는 것이다. 두번째 방법은 카메라 미리보기 화면을 앱에 넣은 뒤 화면을 캡쳐하여 사용하는 것이다. 두번째 방법은 앱을 새로 띄우지 않고 앱 내에서 처리 가능하다는 장점이 있지만. 카메라 설정이 기기마다 매우 다르기 때문에 예외 처리가 힘들어 첫번째 방법을 사용하는 것을 권장한다. 두가지 방법의 사용법을 하나씩 알아보자. 카메라 앱을 사용하여 촬영하기 먼저 manifest에 저장소에 읽고 쓰기 위한 권한을 요청해주자. ※ 저장소 접근 권한은 위험 권한이기 때문에 앱 실행 시 사용자에게 허가를 받아야 한다. 자세한 내용은 아래 글 참고. https://ju-hy.ti.. 2020. 5. 2.
Device의 Network 상태 가져오기 앱을 개발하다보면 사용자가 인터넷에 연결된 상태인지 아닌지 확인해야 할 때가 있다. 예를 들어 넷플릭스나 유튜브를 보면 동영상을 저장하여 오프라인일 때 시청할 수 있는 기능을 제공한다. 인터넷이 가능할 때는 서버로부터 컨텐츠를 가져와 보여주고, 인터넷에 연결되지 않았을 때는 미리 저장된 컨텐츠를 보여주는 것이다. 이와 같은 기능을 구현하기 위해서는 인터넷 연결 상태를 미리 확인할 수 있는 방법이 필요하다. Source Code 먼저 Manifest에 네트워크 상태를 확인할 수 있는 ACCESS_NETWORK_STATE 권한을 등록한다. package com.juhy.myapplication; import android.content.Context; import android.net.Connectivity.. 2020. 5. 1.