본문 바로가기

Android57

OptionMenu의 item에 actionLayout 지정 시 onOptionsItemSelected() 미작동 문제점 OptionMenu를 구현할 때 item을 icon이 아닌 actionLayout 옵션을 통해 layout을 지정하면, onOptionsItemSelected()가 호출되지 않아 클릭 시 이벤트를 처리할 수 없음. 해결 방법 @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.menu_sort, menu); for(int i=0; i 2020. 5. 8.
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.
No Network Security Config specified, using platform default 문제점 http url을 통해 통신을 하거나 이미지, 오디오, 비디오 등을 불러올 때 다음과 같은 오류가 발생할 수 있다. 해결 방법 1. 네트워크 연결이 되어있는지 확인해보자. 와이파이와 데이터 모두 꺼져있을 수 있다. 2. 네트워크가 연결되있다면 http:// 로 시작하는 url을 https:// 로 고치면 해결할 수 있다. 3. https를 사용할 수 없다면 manifest의 application 태그에 다음 옵션을 추가해준다. android:usesCleartextTraffic="true" 2020. 5. 3.
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.