22 Notification 通知栏代码
生活随笔
收集整理的這篇文章主要介紹了
22 Notification 通知栏代码
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
結構圖:
MainActivity.java
package com.qf.day22_notification;import android.app.Activity; import android.app.Notification; import android.app.NotificationManager; import android.app.PendingIntent; import android.content.Context; import android.content.Intent; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.Bundle; import android.support.v4.app.NotificationCompat; import android.view.View; import android.widget.RemoteViews;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}// 普通的通知public void MyClick01(View v){//獲取通知對象NotificationCompat.Builder builder = new NotificationCompat.Builder(MainActivity.this);//必有屬性 必須要寫 哪怕你不用builder.setSmallIcon(R.drawable.image1);//圖標//其他屬性//發送通知的時間 是指顯示的時間不是定時發送builder.setWhen(System.currentTimeMillis());Bitmap bp = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);builder.setLargeIcon(bp);builder.setContentInfo("信息");builder.setContentTitle("標題");//標題builder.setContentText("內容hgcdakhgflasfgldsafgldguli iueroewyurhwehfldiufhlaskjfglsadfglksFGLSdjgflasdgflahgjkfdshg;hg;efgh");//內容Intent intent = new Intent(MainActivity.this, SecondActivity.class);/*** * 延遲意圖 等待你的點擊 * 參數1:上下文* 參數2:請求碼* 參數3:跳轉的意圖* 參數4:標記*/PendingIntent pendIntent = PendingIntent.getActivity(MainActivity.this, 100, intent, PendingIntent.FLAG_ONE_SHOT);builder.setContentIntent(pendIntent);//獲取通知的管理者對象NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);//使用管理者讓通知展示manager.notify(1, builder.build());}//大視圖通知 小米顯示miui系統好像有問題public void MyClick02(View v){NotificationCompat.Builder builder = new NotificationCompat.Builder(getApplicationContext());builder.setContentText("快放假了");builder.setContentTitle("十一");builder.setSmallIcon(R.drawable.f020);//視圖樣式NotificationCompat.InboxStyle style = new NotificationCompat.InboxStyle();style.addLine("還有好多天");style.addLine("等等就到了");style.addLine("是啊");style.addLine("恩");builder.setStyle(style);NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);manager.notify(2, builder.build());}//大視圖通知(大圖片) 小米顯示miui系統好像有問題public void MyClick03(View v){NotificationCompat.Builder builder = new NotificationCompat.Builder(getApplicationContext());builder.setContentTitle("新聞");builder.setContentText("中彩票了");builder.setSmallIcon(R.drawable.f020);//大圖片 視圖樣式NotificationCompat.BigPictureStyle style = new NotificationCompat.BigPictureStyle();//大圖片style.bigPicture(BitmapFactory.decodeResource(getResources(), R.drawable.ccc));style.setSummaryText("菜譜");builder.setStyle(style);NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);manager.notify(3, builder.build());}//帶進度條的通知public void MyClick04(View v){final NotificationCompat.Builder builder = new NotificationCompat.Builder(getApplicationContext());builder.setContentTitle("昨天晚上下雨了");builder.setContentText("早上起來 地干了");builder.setSmallIcon(R.drawable.f020);final NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);//模仿下載new Thread(){public void run() {//每次下載5%for(int i=0;i<=100;i+=5){/*** 設置進度 * 參數1:最大的進度* 參數2:當前進度* 參數3:標志 進度條的樣式 false :有明確進度 true:沒有明確進度*/builder.setProgress(100, i, false);manager.notify(4, builder.build());try {Thread.sleep(500);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}}//下載完展示builder.setContentText("下載完成");manager.notify(4, builder.build());};}.start();}//自定義通知public void MyClick05(View v){NotificationCompat.Builder builder = new NotificationCompat.Builder(getApplicationContext());builder.setContentTitle("瘋狗咬人");builder.setSmallIcon(R.drawable.ic_launcher); // //VIew 將xml布局轉換成View對象RemoteViews rViews = new RemoteViews(getPackageName(), R.layout.rviews_layout);//自身的方法設置內容rViews.setTextViewText(R.id.tv, "咬了十幾個");rViews.setImageViewResource(R.id.iv, R.drawable.f020);builder.setContent(rViews);NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);manager.notify(5, builder.build());}}SecondActivity.java
package com.qf.day22_notification;import android.app.Activity; import android.app.NotificationManager; import android.content.Context; import android.os.Bundle;public class SecondActivity extends Activity{@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.layout);//獲取通知的管理者對象NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);// manager.cancel(1);//根據標識 去關閉通知manager.cancelAll();// 關閉所有通知}}activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"tools:context=".MainActivity" ><Button android:onClick="MyClick01"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="普通的Notification"/><Button android:onClick="MyClick02"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="大視圖Notification"/><Button android:onClick="MyClick03"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="大視圖(大圖片)Notification"/><Button android:onClick="MyClick04"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="帶進度條Notification"/><Button android:onClick="MyClick05"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="自定義Notification"/></LinearLayout>layout.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="match_parent"android:orientation="vertical" ><TextView android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="第二個Activity"/></LinearLayout>rviews_layout.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="match_parent"android:orientation="vertical" ><TextView android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="第二個Activity"/></LinearLayout>- 對應樣式圖:
對應按鈕順序
* 有明確進度條樣式 false
無明確進度條樣式true 一直滑動
轉載于:https://www.cnblogs.com/muyuge/p/6152202.html
總結
以上是生活随笔為你收集整理的22 Notification 通知栏代码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 百思不得姐第4天:文本框占位文字颜色
- 下一篇: ps调整图层