반응형
안드로이드에서는 기본적으로 제공하는 알림창외에도 사용자가 임의로 만들 수 있는
커스텀뷰를 알림창으로 만들 수 있습니다.
먼저 일반적인 알림창입니다.
표현할 수 있는게 별로 없습니다.
그렇다고 버튼을 달 수 도 있습니다.
물론 알림창을 클릭하면 다른 화면으로 이동은 가능합니다.
좀 더 자유로운 레이아웃을 구성하려면 remoteview를 사용해야 합니다.
먼저 레이아웃을 하나 구성합니다.
위 아래로 늘어나서 이상하게 보이지만 나중에 띄워보면 제대로 나옵니다.
저는 제일 왼쪽에 아이콘을 두고 두번째에는 텍스트 뷰를 3개 오른쪽에는 텍스트 뷰 1개와
이미지 버튼 하나를 배치했습니다.
그리고 구현된 자바 코드입니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | NotificationCompat.Builder mBuilder; public Intent intent1,intent2; public PendingIntent pintent1,pintent2 ; public RemoteViews contentView; intent1 = new Intent(this,update.class); pintent1 = PendingIntent.getActivity(this, 0,intent1, PendingIntent.FLAG_UPDATE_CURRENT); intent2 = new Intent(this, main.class); pintent2 = PendingIntent.getActivity(this, 0, intent2, PendingIntent.FLAG_UPDATE_CURRENT); contentView = new RemoteViews(getPackageName(), R.layout.notify); contentView.setTextViewText(R.id.notifyLocation, location); contentView.setTextViewText(R.id.notifyWeather, "날씨 : " + curWfKor + "," + curTemp); contentView.setTextViewText(R.id.notifyFinddust, "미세먼지 : " + finddust); contentView.setTextViewText(R.id.notifyTime, updateTime); contentView.setOnClickPendingIntent(R.id.notifyReflash, pintent1); mBuilder=new NotificationCompat.Builder(this) .setSmallIcon(R.drawable.genie_icon) .setContent(contentView) .setContentIntent(pintent2); mManager.notify(notifyID, mBuilder.build()); | cs |
Line 6~7 : 이미지 버튼눌렀을때 이동할 액티비티를 정의하는 곳입니다.
Line 9~10 : 알림창의 가운데부분을 눌렀을 때 이동할 액티비티를 정의합니다.
Line 12 : 위에서 만들어진 레이아웃을 정의해 줍니다.
Line 13 : firstText입니다.
Line 14 : secondText입니다.
Line 15 : thirdText입니다.
Line 16 : 오른쪽의 dateText입니다.
Line 17 : 6~7에서 정의한 버튼 이미지버튼에 연결해 줍니다.
Line 19~22 : remoteview와 설정들을 notification.builder에 넣어줍니다.
Line 24 : notification을 실행시킵니다.
이렇게하고 실행해 보면 아래와 같이 만들어 집니다.
반응형
'Study > Android' 카테고리의 다른 글
JSON Array parsing (0) | 2015.11.24 |
---|---|
android에서 mysql 데이터 가져오기 (92) | 2015.11.18 |
Google map Location (구글맵 위치) - LocationListener using google api (4) | 2015.10.26 |
Google map Location (구글맵 위치) - setMyLocationChangeListener (0) | 2015.10.26 |
google maps android API를 이용한 지도 2 - Fragment (2) | 2015.10.23 |