![](/img/trans.png)
[英]How to make a custom view in an App Widget similar to the one in Google Play Music widget?
[英]How to create a notification similar to Play Music app from Google
我正在尝试创建一个与Google使用的“Play Music”应用程序非常类似的通知。
很少有人希望有人可以回答这些问题。
是的,所有这些都是通过自定义RemoteViews
完成的。 您将在Notification
文档中看到, bigContentView
和contentView
都有一个字段。
我知道我很晚才回答,但这是针对尝试媒体通知的新人。
无需使用RemoteViews
。 我们现在可以简单地使用NotificationCompat.MediaStyle()
。 它可以根据需要完美运行,并使Media
消费体验更加统一。
使用MediaStyle通知时,版本> Lollipop将没有X按钮。 相反,我们在暂停状态下使通知不可用。 在这种情况下,要遵循的过程显示在此链接中 。
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);
这可以帮助您根据需要设置整个媒体通知。 快乐的编码!
<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 RemoteView
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.