自定义通知栏这样操作应该怎么搞?花式TextView操作在这里
来源:互联网 发布:sql 给列添加默认值 编辑:程序博客网 时间:2024/05/16 18:48
构建通知栏
private void sendNotification() { notificationManager = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);//通知管理器 RemoteViews contentView = new RemoteViews(getPackageName(), R.layout.view_custom_button);//远程视图 // 设置远程视图中的控件内容 contentView.setImageViewResource(R.id.notify_music_icon, R.mipmap.app_icon); contentView.setTextViewText(R.id.txt_notify_Title,"标题" ); Intent pauseIntent = new Intent(this, MyReceiver.class);//intent是一个广播类对象 pauseIntent.setAction("NOTIFY_PAUSE");//设置动作 PendingIntent pausePendingIntent = PendingIntent.getBroadcast(this, 0, pauseIntent, 0);//pendingIntent得到广播 contentView.setOnClickPendingIntent(R.id.btn_notify_pause, pausePendingIntent);//设置按钮成带PendingIntent的可点击按钮 Intent nextIntent = new Intent(this, MyReceiver.class); nextIntent.setAction("NOTIFY_NEXT"); PendingIntent nextPendingIntent = PendingIntent.getBroadcast(this, 0, nextIntent, 0); contentView.setOnClickPendingIntent(R.id.btn_nitify_exit, nextPendingIntent); //如果api版本11(android 3.0)以上按钮才显示 if (Build.VERSION.SDK_INT >= 11) { contentView.setViewVisibility(R.id.btn_notify_pause, View.VISIBLE); contentView.setViewVisibility(R.id.btn_notify_next, View.VISIBLE); contentView.setViewVisibility(R.id.btn_nitify_exit, View.VISIBLE); } //3 Notification notification = new Notification(R.mipmap.app_icon, "法律家来消息了", System.currentTimeMillis()); //实例化通知对象 // 绑定远程视图 notification.contentView = contentView; // 4.定义 PendingIntent并绑定 Intent notificationIntent = new Intent(this, MainActivity.class); notification.contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) { notification.bigContentView=contentView; } notification.contentIntent =pausePendingIntent;// 绑定 PendingIntent // notification.flags = Notification.FLAG_NO_CLEAR;// 设置不可取消 // 5 发通知 notificationManager.notify(1, notification); }
xml文件
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/RelativeLayout1" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@color/lavenderblush" > <ImageView android:layout_gravity="center_vertical" android:id="@+id/notify_music_icon" android:layout_width="100dp" android:layout_height="100dp" android:src="@mipmap/app_icon" /> <LinearLayout android:layout_width="120dp" android:layout_height="wrap_content" android:layout_gravity="center_vertical"> <TextView android:id="@+id/txt_notify_Title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingTop="3dp" android:text="您正在使用法律家APP语音服务,可操作右边按钮控制进程" android:textColor="@color/black" /> </LinearLayout> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:gravity="center_vertical" android:orientation="vertical"> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:layout_marginLeft="20dp" android:layout_marginTop="10dp" android:gravity="center_vertical"> <ImageView android:id="@+id/btn_nitify_exit" android:layout_width="40dp" android:layout_height="40dp" android:layout_gravity="center_vertical" android:layout_marginRight="15dp" android:background="@mipmap/play" android:clickable="true" android:gravity="center_vertical" /> <ImageView android:id="@+id/btn_notify_pause" android:layout_width="40dp" android:layout_height="40dp" android:layout_centerVertical="true" android:layout_gravity="center_vertical" android:layout_marginRight="3dp" android:layout_toLeftOf="@+id/btn_notify_next" android:background="@mipmap/stop" android:clickable="true" /> </LinearLayout> </LinearLayout></LinearLayout>
还有一个广播
public class MyReceiver extends BroadcastReceiver { private Voice_BroadcaseUtil util; //调用 private Context context; private NotificationManager notificationManager; public MyReceiver() { } @Override public void onReceive(Context context, Intent intent) { util=new Voice_BroadcaseUtil(context); String action = intent.getAction(); if ("NOTIFY_PAUSE".equals(action)) { util.toVoiceSpeakPaused(); } if ("NOTIFY_NEXT".equals(action)) { util.toVoiceSpeakResumed(); } if ("NOTIFY_EXIT".equals(action)) { } } public void onReceive(Context context, Intent intent, String string, int id) { util=new Voice_BroadcaseUtil(context); notificationManager = (NotificationManager) context.getSystemService(NOTIFICATION_SERVICE); String action = intent.getAction(); if ("NOTIFY_NEXT".equals(action)) { util.toVoiceStartSpeak(string); } if ("NOTIFY_PAUSE".equals(action)) { util.toVoiceSpeakPaused(); } if ("NOTIFY_CLOSE".equals(action)) { System.out.println("xxxxx"); notificationManager.cancel(id); } }}
花式TextView
textView.setText(Html.fromHtml("<p>为您找到<p><font color=\"red\">" + "100" + "</p>个相关结果</p>"));//使用HTML语言写的不常见,记住了!
刷新装载数据
@Override protected void addArrayListData(Laws_ResponseData response) { if (response != null) { if (response.objs.size() > 0) { setArrayListData(response.objs); setDataItemCount(10); } else { } } }
这样就完成了一个带有Button控件的通知栏,可以随意定义播放的是科大讯飞的语音。也可以播放其他文件,实测不错
阅读全文
0 0
- 自定义通知栏这样操作应该怎么搞?花式TextView操作在这里
- UITableviewCell的花式操作
- 自定义空间怎么在context传入activity给空间操作
- python3花式秀操作--文件读写
- 怎么对MySQL数据库操作大数据?这里有思路
- Notification通知、普通通知、大视图通知、进度条通知, 子线程可以操作时度条、流动进度条通知、自定义通知
- 走到这里,还应该怎么走!
- 近期研究dotnet操作Excel,在这里作一个记录。
- Android 状态栏操作,你想知道的都在这里了
- Android 状态栏操作,你想知道的都在这里了
- [Android开发]自定义View之TextView局部操作View-SpanTextView
- 新版本的express怎么就搞不定,看这里
- 新版本的express怎么就搞不定,看这里
- 【TextView】Android TextView相关操作
- 怎么在notepad++ 中列操作
- 自定义View应该怎么定义
- Android 在通知栏使用自定义字体
- TextView基本操作
- Mysql脚本指南
- 自定义Dialog模仿苹果样式
- js encodeURI() 函数
- php 后期静态绑定的用法 static::
- PHP 发送邮件配置 转发自http://www.cnblogs.com/dee0912/p/5448350.html
- 自定义通知栏这样操作应该怎么搞?花式TextView操作在这里
- 关于halcon的多个二维码内容解析
- react 函数式组件
- HttpClient请求接口上传文件以及参数
- Leetcode Median of two sorted arrays解题
- Linux rsync服务配置及使用
- 日常笔记
- Android LayoutInflater.inflate()方法参数详解
- 8080端口被占用