一、概述。
RemoteViews是一种远程View,它提供了一组基础的操作用于跨进程更新它的界面。
一般RemoteViews在android中的应用场景有两种:一种是通知栏,另一种是桌面小部件。
二、应用。
(1)、通知栏。
首先使用系统默认的样式创建一个通知,
Intent intent = new Intent(this, NotificationActivity.class); PendingIntent pi = PendingIntent.getActivity(this,0,intent,0); //待定时刻发生的Intent NotificationManager manager = (NotificationManager)getSystemService(NOTIFICATION_SERVICE); Notification notification = new NotificationCompat.Builder(this) .setContentTitle("This is context title") // 标题 .setContentText("This is context text") // 内容 .setWhen(System.currentTimeMillis()) //创建通知的时间 .setSmallIcon(R.mipmap.ic_launcher) //状态栏图标 .setLargeIcon(BitmapFactory.decodeResource(getResources(),R.mipmap.ic_launcher)) //通知栏的图标 .setContentIntent(pi) //单击跳转 .setAutoCancel(true) // 点击后清除本身 // .setDefaults(NotificationCompat.DEFAULT_ALL) // .setStyle(new NotificationCompat.BigPictureStyle().bigPicture(BitmapFactory.decodeResource(getResources(), R.drawable.zz))) // .setStyle(new NotificationCompat.BigTextStyle().bigText("zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz"))上述代码会创建一个系统默认的通知栏,单击后会跳转至NotificationActivity,并且会清除本身。.build();
manager.notify(1,notification);
接下来,我们需要新建一个布局文件,然后使用RemoteViews加载这个布局文件,并且将那Notification的RemoteViews设置为新建的RemoteViews,即可改变通知样式。
布局文件remote_view.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="match_parent"> <ImageView android:id="@+id/image" android:layout_width="100dp" android:layout_height="100dp" android:src="@drawable/back" /> <TextView android:id="@+id/content_text" android:layout_width="match_parent" android:textSize="20dp" android:layout_h