[안드로이드] 커스텀 확장 뷰로 통보하기

반응형



이어지는 글     
통보하기                    
토스트로 통보하기   
상태바로 통보하기
       

노티피케이션 관리    
불빛(플래시 라이트)으로 통보하기   
  

읽기전에 손가락 한번 클릭~ >_<

고마워요 ~ Chu ~ ♥


통보하기의 보너스인 커스텀 뷰로 노티피케이션 통보하기 에 관한 글 입니다.


커스텀 확장 뷰 생성하기



기본적으로 노티피케이션 윈도우의 확장뷰는 기본적인 타이틀과 텍스트를 가지고 있는데, 이것들은 setLatestEventInfo() 메소드의 contentTitle 과 contentText 파라미터에 의해 만들어 집니다.



커스텀된 확장 뷰를 쓰려면 RemoteView 클래스를 사용하여 레이아웃을 정의해야 합니다.

우선, 리모트 뷰 객체를 생성하고, 노티피케이션의 contentView 필드에 RemoteView 를 전달하고 나서 contentIntent 필드에는 PendingIntent 를 전달합니다.


예제 볼까요


확장뷰에서 사용될 레이아웃 입니다.

레이아웃 선언 후 이제 RemoteView 의 메소드를 사용하여 이미지와 텍스트 등을 선언하고,  리모트뷰 객체를 노티피케이션의 contentView 필드에 전달해야 겠지요?


소스코드에서 , 리모트 뷰의 생성자로 어플리케이션의 패키지 이름과 레이아웃 리소스 ID를 전달했습니다.
그런 다음 setImageViewResource() 와 setTextViewText() 메소드로 이미지와 텍스트를 설정하는데요, 여기에는 해당 값과 뷰 객체의 ID 를 함께 전달합니다.
마지막으로 리모트 뷰 객체는 노티피케이션의 contentView 필드에 전달합니다.


커스텀 뷰는 setLatestEventInfo() 메소드를 사용하지 않기 때문에 contentIntent 필드에서 노티피케이션 인텐트를 정의해야 합니다.



그리고 최종적으로 노티피케이션을 표시해 줍니다.



리모트 뷰 클래스도 ' 진행바 ' 등을 추가하기 위한 메소드들도 가지고 있습니다.
커스텀 확장 뷰는 너무 복잡하게 만들지 말고, 다양한 환경에서 확실한 테스트가 요구됩니다. 왜냐하면 레이아웃이 표시될 공간이 작고 미흡하기 때문입니다.







  이제 통보하는 작업인 노티피케이션에 대한 내용은 모두 끝이 났습니다 ^^
다음엔 스타일과 테마를 적용하는 것에 대한 포스팅 !!



반응형

댓글

Designed by JB FACTORY