슬기로운 개발자생활/Native APP

[APP 개발] 안드로이드 스튜디오 알림 기능 (진동, 벨, 토스트, 알림창)

개발자 소신 2020. 1. 7. 00:23
반응형

 

안드로이드에서 사용자에게 무언가를 알려줘야 할 때 사용하는 알림 기능들입니다.

 

 

1. 진동 울리기

 

진동을 울리기 위해선 먼저 설정해야 할 것이 있습니다.

AndroidMenifest.xml에  

를 추가해줍니다.

 

그리고 자바에서

을 추가해주면 1초동안 진동을 울릴 수 있습니다.

 

vibrate( 0000 )에 ms단위로 나타내주기 때문에 2000은 2초, 3000은 3초를 나타냅니다.

500은 0.5초 !

 

2. 소리 울리기

 

먼저 시스템에 내장되어 있는 시스템 효과음을 사용할 때에는

Uri 타입으로 해당 효과음을 획득해줍니다.

그리고 Ringtone에 Uri를 저장하고 Play()를 호출해주면 시스템 효과음이 울립니다 !

시스템 효과음의 종류에는 RingtoneManager.TYPE_NOTIFICATION 뿐만 아니라

TYPE_ALARM, TYPE_RINGTON 등이 있습니다.

 

그리고 만약에 커스텀 효과음을 주기 위해선

이와 같은 방식으로 사용해주시면 됩니다 !

R.raw.효과음이름 을 사용하기 위해선

res폴더의 raw폴더를 생성해서 효과음 파일을 넣어주면 되겠죠?

 

이렇게 앱 폴더의 res로 들어가서 오른쪽클릭, New, Android Resource Directory

 

resource type을 raw로 해주면 폴더명도 자동으로 raw로 변경됩니다 !

 

3. 토스트 (Toast)

토스트 구현 방식은 정말 간단합니다.

Toast를 변수로 생성하고 나타낼 문자를 입력하고

몇 초 동안 나타낼 건지만 정해주면 기본 세팅은끝납니다.

 

Toast.LENGTH_SHORT는 3초

Toast.LENGTH_LONG은 5초입니다.

 

종료하시겠습니까? 자리에는

R.string.name와 같이 값을 참조해서 사용할 수도 있습니다.

 

토스트의 속성에는 위와 같은 것들이 있습니다.

.setDuration = 지속시간 (Toast.LENGTH_SHORT, Toast.LENGTH_LONG)

.setText = 표시할 텍스트 (id)

.setView = 뷰 설저 

.setGravity = 정렬, 위치

.setMargin = 좌우, 상하 margin 설정

 

4. 알림 창 (AlertDialog)

 

자주 보셨겠지만 이런 화면을 알림창이라고 합니다.

 

기본 생성 방식입니다.

Builder를 사용해서 세팅을 해주고 AlertDialog 객체에 builder.create()로 만들어줍니다.

그 뒤에 alertDialog.show()를 불러와 보여주는 방식입니다.

 

알림 창이 떴을 때 하단의 버튼이 눌리거나, 뒤로가기,

알림 창 바깥 영역을 터치했을 때 사라지지 않게 하기 위해선

.setCancelable(false)을 통해 설정해줍니다.

 

이벤트 함수 작성은 

이렇게 작성을 해주고

작성한뒤에 버튼의 listner부분에 dl을 넣어주시면 됩니다.

 

아니면 이렇게 바로 함수를 넣어서 생성할 수도 있습니다.

근데 이렇게 되면 재활용하기가 좀 불편해지죠

 

5. 목록 (AlertDialog)

이렇게 목록을 생성하는 것도 똑같이 Builder를 사용합니다.

res/values에 new → Values resource file을 선택하고 이름을 array로 xml파일을 생성하고

string-array로 string을 배열로 생성해주고 <item> 태그를 통해

하나하나 생성해주시면 됩니다.

 

메서드에는 여러개를 선택 가능한 체크박스 형식의

.setMultiChoiceItems(items[], boolean[] checked, DialogInterface.OnMultiChoiceClickListener listener);

여러개가 선택이 가능하기 때문에 boolean의 배열이 들어가게 됩니다.

 

한 가지만 선택이 가능한 라디오버튼 형식의

.setSingleChoiceItems(items[], int checkedItem Index, DialogInterface.OnSingleChoiceClickListener listener);

한 개만 선택이 가능하기 때문에 체크된 item의 index가 오게 됩니다.

 

6. 날짜 선택 (DatePickerDialog)

위에선 Calendar를 사용했는데 import java.util.Calendar; 를 임포트해줘야 사용할 수 있습니다.

Calendar를 통해 현재 날짜를 가져오고,

날짜 선택창을 열었을 때 오늘 날짜로 나타내주었습니다.

Listener를 안에다가 선언해준 상태입니다. 밖에다가 객체를 생성해 객체명을 가져와 사용하셔도 됩니다.

 

7. 시간 선택 (TimePickerDialog)

 

위에서 생성한 Calender를 그대로 가져와서 사용해주었습니다. 

Listener를 밖에서 선언해서 사용해도 되고 안에다가 이렇게 사용해도 됩니다.

 

8. 커스텀 다이얼로그 (AlertDialog)

커스텀 다이얼로그는 USB디버깅 알림 화면을 떠올리시면 되는데요.

layout을 생성해서 구성한뒤에 그 Layout을 View로 inflate해서

알림창을 만드는 방식입니다.

 

어때유 정말 쉽쥬?

 

사실 여러번 해보지 않으면 어려운 것

 

가장 중요한 건 각 메서드가 뭘 만들 때 사용하는건지 알고있는 것

그리고 Layout을 생성해야 하는지, string-array를 생성해야 하는지,

필요조건이 뭔지 알고 있는 것 !

반응형