2017-01-27 2 views

답변

2

BitTextStyle()을 사용하여 알림에서 강조 표시된 텍스트를 추가했습니다.

return new NotificationCompat.Builder(context) 
     .setSmallIcon(R.drawable.ic_mono) 
     .setContentTitle(title) 
     .setContentText(message) 
     .setLargeIcon(icon) 
     .setColor(ContextCompat.getColor(context, R.color.notification_color)) 
     .setStyle(new NotificationCompat.BigTextStyle().bigText(title)) 
     .setStyle(new NotificationCompat.BigTextStyle().bigText(message).setSummaryText("#hashtag")) 
     .setShowWhen(true) 
     .setAutoCancel(true); 
45

를 사용하여 사용자 정의 알림 레이아웃을 정의하기 위해 귀하의 통지 빌더

에 사용자 정의 contentView가있는 XML 레이아웃 파일을이 팽창 리모트 뷰 RemoteViews 객체를 인스턴스화하여 시작합니다. 그런 다음 대신 setContentTitle()과 같은 호출 메소드 setContent()으로 호출하십시오.

는 별도의 파일에 알림에 대한 XML 레이아웃 만들기 : 뷰의 아이의 값을 설정 RemoteViews의 방법을 사용하여, 사용자 지정 통지 내용 세부 사항을 설정합니다. 은 원하는 파일 이름을 사용할 수 있지만 확장자 .xml을 사용해야합니다. 앱에서 RemoteViews 메서드를 사용하여 알림의 아이콘과 텍스트를 정의합니다. 이 RemoteViews 개체를 NotificationCompat.Builder에 넣으려면 setContent()으로 전화하십시오. 텍스트를 읽을 수 없게 될 수 있으므로 RemoteViews 객체에 배경 Drawable을 설정하지 마십시오.

custom_push.xml 내 사용자 정의보기 R.id.image, R.id.text, R.id.title

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/layout" 
    android:layout_width="fill_parent" 
    android:layout_height="64dp" 
    android:padding="10dp" > 
    <ImageView 
     android:src="@mipmap/ic_launcher" 
     android:id="@+id/image" 
     android:layout_width="wrap_content" 
     android:layout_height="fill_parent" 
     android:layout_alignParentLeft="true" 
     android:layout_marginRight="10dp" /> 
    <TextView 
     android:textSize="13dp" 
     android:textColor="#000" 
     android:text="Testing" 
     android:id="@+id/title" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_toRightOf="@id/image" 
     /> 
    <TextView 
     android:textSize="13dp" 
     android:textColor="#000" 
     android:text="Testing is awecome" 
     android:id="@+id/text" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_toRightOf="@id/image" 
     android:layout_below="@id/title" 
     /> 
</RelativeLayout> 

리모트 뷰 RemoteViews 오브젝트를 인스턴스화하고 설정을 가지고

RemoteViews contentView = new RemoteViews(getPackageName(), R.layout.custom_push); 
contentView.setImageViewResource(R.id.image, R.mipmap.ic_launcher); 
contentView.setTextViewText(R.id.title, "Custom notification"); 
contentView.setTextViewText(R.id.text, "This is a custom layout"); 

NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this) 
.setSmallIcon(R.drawable.icon) 
.setContent(contentView); 

Notification notification = mBuilder.build(); 
notification.flags |= Notification.FLAG_AUTO_CANCEL; 
notification.defaults |= Notification.DEFAULT_SOUND; 
notification.defaults |= Notification.DEFAULT_VIBRATE; 
notificationManager.notify(1, notification); 

enter image description here

검사 : https://developer.android.com/guide/topics/ui/notifiers/notifications.html#ApplyStyle

+0

그래서보기를 사용자 정의해야합니다. 권리? –

+0

@khaleel_jageer yess 주어진 링크에 **라는 사용자 지정 알림 레이아웃 **이라는 팁이 있습니다. ** 질문을받지 못했다면 읽으십시오. –

+4

이것은 대답이어야합니다! – Kaushal28

3

내가 원하는 것은 .setSubText()입니다. 당신이 지적한 플립커 알림은 분명히 사용자 정의보기가 아닙니다.

NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this) 
         .setSmallIcon(icon) 
         .setSubText("Limited Stocks, Don't Wait!") <------- 
         .setContentTitle("Custom Notification Title") 
notificationBuilder.notify(1, notificationBuilder.build()); 
관련 문제