android学习日记21--消息提示之Toast和Notification

一、Toast
  Toast译为土司,相似切片面包,用于弹出比较快速的及时提示信息。当Toast被显示时,
虽然它悬浮应用程序最上方,可是并未得到焦点。它的设计就是为了提示有用的信息,而不打扰用户其余操做。
最使用简单:ide

1       // 第一个参数:当前的上下文环境。可用getApplicationContext()或this  
2          // 第二个参数:要显示的字符串。也但是R.string中字符串ID  
3          // 第三个参数:显示的时间长短。Toast默认的有两个LENGTH_LONG(长)和LENGTH_SHORT(短),也可使用毫秒,如2000ms
4          Toast.makeText(getApplicationContext(), "简单的Toast",Toast.LENGTH_LONG).show();

固然你也能够设置图片和显示位置:布局

 1             toast = Toast.makeText(getApplicationContext(), "可选位置带图片的Toast",
 2                     Toast.LENGTH_LONG);
 3             //第一个参数:设置toast在屏幕中显示的位置。我如今的设置是居中靠顶  
 4             //第二个参数:相对于第一个参数设置toast位置的横向X轴的偏移量,正数向右偏移,负数向左偏移  
 5             //第三个参数:同的第二个参数道理同样  
 6             //若是你设置的偏移量超过了屏幕的范围,toast将在屏幕内靠近超出的那个边界显示
 7             toast.setGravity(Gravity.CENTER, -50, 100);
 8             //得到toast的布局 
 9             LinearLayout toastView = (LinearLayout) toast.getView();
10             //设置图片 
11             ImageView imageCodeProject = new ImageView(getApplicationContext());
12             imageCodeProject.setImageResource(R.drawable.ic_launcher);
13             //添加图片 
14             toastView.addView(imageCodeProject, 0);
15             toast.show();

 

或者自定义Toast显示:post

 1             //LayoutInflater这个类用来实例化XML文件到其相应的视图对象的布局
 2             LayoutInflater inflater = getLayoutInflater();
 3             View layout = inflater.inflate(R.layout.custom,
 4                     (ViewGroup) findViewById(R.id.llToast));
 5             ImageView image = (ImageView) layout
 6                     .findViewById(R.id.tvImageToast);
 7             image.setImageResource(R.drawable.ic_launcher);
 8             TextView title = (TextView) layout.findViewById(R.id.tvTitleToast);
 9             //设置标题
10             title.setText("Attention");
11             TextView text = (TextView) layout.findViewById(R.id.tvTextToast);
12             //设置内容
13             text.setText("彻底自定义Toast");
14             toast = new Toast(getApplicationContext());
15             toast.setGravity(Gravity.RIGHT | Gravity.TOP, 12, 40);
16             toast.setDuration(Toast.LENGTH_LONG);
17             toast.setView(layout);
18             toast.show();

 

Toast提示消息也能够来自其余线程:this

 1     Handler handler = new Handler();
 2     public void showToast() {
 3         handler.post(new Runnable() {
 4 
 5             @Override
 6             public void run() {
 7                 Toast.makeText(getApplicationContext(), "我来自其余线程!",
 8                         Toast.LENGTH_SHORT).show();
 9 
10             }
11         });
12     }

 

二、Notification
  Notification位于手机状态栏。状态栏位于手机屏幕的最上层,一般显示电池电量、信号强度等信息。
按住状态栏往下拉就能够打开查看系统提示信息。spa

若是要添加一个Notification,须要了解NotificationManager和Notification线程

a、NotificationManager(通知管理器)
NotificationManager负责通知用户事件的发生.
NotificationManager有三个公共方法:
1. cancel(int id) 取消之前显示的一个通知.假如是一个短暂的通知,试图将隐藏,假如是一个持久的通知,将从状态条中移走.
2. cancelAll() 取消之前显示的全部通知.
3. notify(int id, Notification notification) 把通知持久的发送到状态条上.设计

b、Notification表明着一个通知
Notification的属性:
audioStreamType 当声音响起时,所用的音频流的类型
contentIntent 当通知条目被点击,就执行这个被设置的Intent.
contentView 当通知被显示在状态条上的时候,同时这个被设置的视图被显示.
defaults 指定哪一个值要被设置成默认的.
deleteIntent 当用户点击"Clear All Notifications"按钮区删除全部的通知的时候,这个被设置的Intent被执行.
icon 状态条所用的图片.
iconLevel 假如状态条的图片有几个级别,就设置这里.
ledARGB LED灯的颜色.
ledOffMS LED关闭时的闪光时间(以毫秒计算)
ledOnMS LED开始时的闪光时间(以毫秒计算)
number 这个通知表明事件的号码
sound 通知的声音
tickerText 通知被显示在状态条时,所显示的信息
vibrate 振动模式.
when 通知的时间戳.code

完整设置Notification代码:对象

 1                 Intent i = new Intent(MainActivity.this, NotifiedActivity.class);
 2                 // pendingIntent是一种特殊的Intent。主要的区别在于Intent的执行马上的,而pendingIntent的执行不是马上的
 3                 PendingIntent pi = PendingIntent.getActivity(MainActivity.this, 0, i, 0);
 4                 //建立一个Notification对象
 5                 Notification myNotification = new Notification();    
 6                 //Notification的图标
 7                 myNotification.icon=R.drawable.header;                
 8                 //Notification的显示内容
 9                 myNotification.tickerText="点击查看";            
10                 //通知时发出的默认声音
11                 myNotification.defaults=Notification.DEFAULT_SOUND;
12                 //设置通知显示的参数
13                 myNotification.setLatestEventInfo(MainActivity.this, "示例", "点击查看", pi);
14                 //通知管理器
15                 NotificationManager notificationManager = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
16                 //发送Notification
17                 notificationManager.notify(0, myNotification);    

运行效果:blog

点击添加Notification,

点击启动另外一个Activity查看Notification

相关文章
相关标签/搜索