像音乐播放器android一样的样式通知风格

时间:2012-06-10 05:52:47

标签: android android-layout android-notifications

如何为Android通知制作自定义布局。就像Android的音乐播放器有按钮一样,在其通知音乐中覆盖图像。你有什么想法吗?你能给我举个例子吗?感谢。

1 个答案:

答案 0 :(得分:0)

这是我为我的音乐播放器应用制作自定义通知的方式。 首先创建一个notification_expanded.xml,可用于Android Lollipop及以上

<RelativeLayout
android:id="@+id/notificationbg"
android:layout_width="match_parent"
android:layout_height="125dp"
android:background="#212121"
xmlns:android="http://schemas.android.com/apk/res/android">

<ImageView
    android:id="@+id/status_bar_album_art"
    android:layout_width="@dimen/notification_expanded_height"
    android:layout_height="@dimen/notification_expanded_height"
    android:scaleType="fitXY"
    android:layout_marginTop="10dp"
    android:layout_toRightOf="@+id/status_bar_collapse"/>

 <ImageButton
    android:id="@id/status_bar_collapse"
    android:background="?android:selectableItemBackground"
    android:padding="2dp"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@android:drawable/ic_menu_close_clear_cancel"
    android:layout_alignParentTop="true"
    android:layout_alignParentLeft="true" />

 </RevaliveLayout>

以上代码只是随机的。当通知完全展开时,您可以将所需内容放在那里,如this

然后创建notification_small_view.xml以显示通知何时很小。

在启动通知的服务中,设置相应的大视图和小视图。

RemoteViews views = new RemoteViews(getPackageName(),
                R.layout.notification_small_view);
RemoteViews bigViews = new RemoteViews(getPackageName(),
                R.layout.notification_expanded);

在您的展开或小型通知中动态设置数据。

bigViews.setTextViewText(R.id.status_bar_track_name, songTitle);
views.setTextViewText(R.id.status_bar_track_name, songTitle);

然后将这些布局设置为您的通知。

Notification notification.contentView = views;
notification.bigContentView = bigViews;