我正在嘗試創建一個與Google使用的「Play音樂」應用程序非常相似的通知。如何創建類似於Google的Play音樂應用程序的通知
一些問題,從而希望有人能回答。
- 此通知是否使用自定義RemoteViews完成?
- X是否關閉NotificationCompat.Builder API的窗口部件?或者只是自定義RemoteView的一部分?
- 如果它是所有自定義視圖我如何設置一個自定義RemoteView爲最小化和最大化狀態?
我正在嘗試創建一個與Google使用的「Play音樂」應用程序非常相似的通知。如何創建類似於Google的Play音樂應用程序的通知
一些問題,從而希望有人能回答。
是的,所有這些都是通過自定義RemoteViews
完成的。你會在Notification
的文檔中看到,有bigContentView
以及contentView
的字段。
<ImageView
android:id="@+id/thumbnail"
android:layout_width="@dimen/notification_expanded_height"
android:layout_height="@dimen/notification_expanded_height"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:src="@drawable/notification"
android:scaleType="fitXY" />
<LinearLayout
android:id="@+id/buttons"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_toRightOf="@id/thumbnail"
android:divider="?android:listDivider"
android:dividerPadding="12.0dip"
android:gravity="center_vertical"
android:orientation="horizontal"
android:showDividers="middle" >
<ImageButton
android:id="@+id/prev"
android:layout_width="0.0dip"
android:layout_height="@dimen/play_controls_notification"
android:layout_weight="1.0"
android:background="?android:selectableItemBackground"
android:padding="10.0dip"
android:scaleType="fitCenter"
android:src="@drawable/btn_playback_rew_jb_dark" />
<ImageButton
android:id="@+id/playpause"
android:layout_width="0.0dip"
android:layout_height="@dimen/play_controls_notification"
android:layout_weight="1.0"
android:background="?android:selectableItemBackground"
android:padding="10.0dip"
android:scaleType="fitCenter"
android:src="@drawable/btn_playback_pause_jb_dark" />
<ImageButton
android:id="@+id/next"
android:layout_width="0.0dip"
android:layout_height="@dimen/play_controls_notification"
android:layout_weight="1.0"
android:background="?android:selectableItemBackground"
android:padding="10.0dip"
android:scaleType="fitCenter"
android:src="@drawable/btn_playback_ff_jb_dark" />
</LinearLayout>
<ImageView
android:layout_width="wrap_content"
android:layout_height="1.0px"
android:layout_above="@id/buttons"
android:layout_alignParentRight="true"
android:layout_toRightOf="@id/thumbnail"
android:background="?android:dividerHorizontal" />
<ImageButton
android:id="@+id/stop"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:background="?android:selectableItemBackground"
android:padding="8.0dip"
android:src="@drawable/ic_close_notification_holo_dark" />
<LinearLayout
android:id="@+id/textarea"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_gravity="center_vertical"
android:layout_toLeftOf="@id/stop"
android:layout_toRightOf="@id/thumbnail"
android:orientation="vertical"
android:paddingLeft="@dimen/notification_padding"
android:paddingTop="8.0dip" >
<TextView
android:id="@+id/trackname"
style="@android:style/TextAppearance.StatusBar.EventContent.Title"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="left"
android:ellipsize="marquee"
android:fadingEdge="horizontal"
android:focusable="true"
android:singleLine="true" />
<Chronometer
android:id="@+id/duration"
style="@android:style/TextAppearance.StatusBar.EventContent"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="left"
android:ellipsize="marquee"
android:layout_marginTop="6dp"
android:fadingEdge="horizontal"
android:maxLines="1" />
</LinearLayout>
2. notification.bigContentView assiginment遠程視窗
需要建議。一切正常,但當我點擊設備後退按鈕,並從應用程序點擊事件(播放/暫停/前進/關閉)按鈕不起作用。請幫助我。 –
豎起大拇指爲 style =「@ android:style/TextAppearance.StatusBar.EventContent.Title」 謝謝我的朋友。 luv ya – AlAsiri
我知道我是很晚回答,但這是針對試用媒體通知的新人。
無需使用RemoteViews
。我們現在可以簡單地使用NotificationCompat.MediaStyle()
。它可以根據需要完美運行,並帶來統一的消費體驗。
使用MediaStyle通知時,將不會有X按鈕用於版本>棒棒糖。相反,當處於暫停狀態時,我們會使通知不可用。在這種情況下,在link中顯示了要遵循的流程。
MediaStyle通知有setShowActionsInCompactView()
定義在Compact模式下顯示哪些所有動作。下面是一個片段:
notificationBuilder.addAction(R.drawable.notification_play, "Play",
createPlayIntent());
notificationBuilder.addAction(R.drawable.notification_next, "Next", createNextIntent())
.setVisibility(NotificationCompat.VISIBILITY_PUBLIC)
.setPriority(NotificationCompat.PRIORITY_MAX)
.setStyle(new NotificationCompat.MediaStyle()
.setShowCancelButton(true)
.setCancelButtonIntent(createPlayIntent())
.setShowActionsInCompactView(0, 1, 2);
這會幫助你在需要建立全媒體通知。快樂的編碼!
感謝您的回覆。在我發現我必須首先構建Notification並且然後可以設置bigContentView之前,讓我稍微弄了一會兒。 – Jona
@Kabuko給了我一個建議。我使用RemoteView構建通知大視圖來控制播放/暫停,就像這個鏈接一樣(http://stackoverflow.com/questions/14508369/how-to-create-a-notification-similar-to-play-music-app-from - 谷歌)一切正常,但當我點擊設備後退按鈕,並從應用程序點擊事件(播放/暫停/轉發/關閉)按鈕不起作用。請幫助我。 –
@HelalKhan隨意創建一個新的問題與更多的細節。儘管如此,這裏的評論並不適合這個地方。 – kabuko