自定义“音频” 通知栏 并获取歌曲title artist album 句句详解
来源:互联网 发布:淘宝上换购是什么意思 编辑:程序博客网 时间:2024/06/11 15:17
1:先创建一个xml 这个模板 自定义视图
代码如下:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="70dp" > //定义歌曲图片 <ImageView android:layout_gravity="center" android:id="@+id/nf_bitmap_iv" android:layout_width="50dp" android:layout_height="50dp" android:src="@mipmap/ic_a16" /> <LinearLayout android:layout_gravity="center" android:layout_marginLeft="10dp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical"> //定义歌曲title <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="15sp" android:text="南方姑娘" android:textColor="#000000" android:id="@+id/nf_title_tv" /> //定义歌曲作者 <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="15sp" android:text="赵雷" android:textColor="#000000" android:id="@+id/nf_artist_tv" /> </LinearLayout> //定义歌曲暂停图标 <ImageView android:layout_gravity="center" android:layout_width="50dp" android:layout_height="50dp" android:src="@drawable/ic_play_bar_btn_pause" /> //定义歌曲下一首图标 <ImageView android:layout_gravity="center" android:layout_width="50dp" android:layout_height="50dp" android:src="@drawable/ic_play_bar_btn_play" /></LinearLayout>
效果图:
2.构造自定义通知栏 里 获取 title artist album
RemoteViews remoteViews=new RemoteViews(getActivity().getPackageName(),R.layout.notification_layout);//把上面的模板xml传过来也就是自定义视图 remoteViews.setTextViewText(R.id.nf_title_tv,Common.musicList.get(i).title);//获取title remoteViews.setTextViewText(R.id.nf_artist_tv,Common.musicList.get(i).artist);//获取artist if(Common.musicList.get(i).albumBup!=null){ remoteViews.setImageViewBitmap(R.id.nf_bitmap_iv,Common.musicList.get(i).albumBup);//获取album
注意: 在获取图片要用到if语句 因为有些歌曲是没有图片 ,要判断是否为空
- 将通知发送到通知栏的完整代码:
Notification.Builder builder=new Notification.Builder(getActivity());// builder.setContent(remoteViews);//将自定义视图添加进通知中栏 builder.setSmallIcon(R.drawable.ic_launcher_background);//小图标 builder.setLargeIcon(BitmapFactory.decodeResource(getResources(),R.drawable.ic_launcher_background)); builder.setAutoCancel(true); 判断是否可以销毁 true NotificationManager nm=(NotificationManager) getActivity().getSystemService(Context.NOTIFICATION_SERVICE); nm.notify(1,builder.build()); //发送通知栏
总结
1:自定义视图
2:获取自定义视图 ,并获取里面的信息
3:发送到通知栏
阅读全文