转自:http://blog.csdn.net/chenlong12580/article/details/7099251
实现了自己的notification,需要利用RemoteView来实现自定义布局,这里就来举一个示例,方便理解。
第一步:新建一个工程,命名为cusNotification;
第二步:新建一个布局文件(即自定义的notification的布局文件:custom_notification.xml,内容如下:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<ImageView
android:id="@+id/image"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_alignParentLeft="true"
android:layout_marginRight="10dp"
android:contentDescription="@string/Image" />
<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/image"
style="@style/NotificationTitle" />
<TextView
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/image"
android:layout_below="@id/title"
style="@style/NotificationText" />
</RelativeLayout>
第三步:新建上面布局文件中引用到的styyes.xml文件,代码如下:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="NotificationText" parent="android:TextAppearance.StatusBar.EventContent" />
<style name="NotificationTitle" parent="android:TextAppearance.StatusBar.EventContent.Title" />
</resources>
第四步:修改java源文件,代码如下:
public class CusNotificationActivity extends Activity {
private static final int CUSTOM_VIEW_ID = 1;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//Notification notification = new Notification();
int icon = R.drawable.ic_launcher;
CharSequence tickerText = "Notification01";
long when = System.currentTimeMillis();
Notification notification = new Notification(icon, tickerText, when);
RemoteViews contentView = new RemoteViews(getPackageName(), R.layout.custom_notification);
contentView.setImageViewResource(R.id.image, R.drawable.notification_image);
contentView.setTextViewText(R.id.title, "Custom notification");
contentView.setTextViewText(R.id.text, "This is a custom layout");
notification.contentView = contentView;
Intent notificationIntent = new Intent(this, CusNotificationActivity.class);
PendingIntent contentIntent = PendingIntent.getActivity(CusNotificationActivity.this, 0, notificationIntent, 0);
notification.contentIntent = contentIntent;
String ns = Context.NOTIFICATION_SERVICE;
NotificationManager mNotificationManager = (NotificationManager) getSystemService(ns);
mNotificationManager.notify(CUSTOM_VIEW_ID, notification);
}
}
这里主要是讲解自定义布局notification的实现,并没有做出很炫的效果!就到这吧!
分享到:
相关推荐
如果需要更复杂的布局,可以使用`RemoteViews`来构建自定义的视图,并通过`setContentView(RemoteViews view)`方法设置。 通知的样式也可以定制。例如,`setStyle(NotificationCompat.BigPictureStyle style)`可以...
4. **自定义布局(Custom Layout)**:如果以上仍无法满足需求,可以使用`RemoteViews`来创建完全自定义的通知布局。通过`Builder`的`setContent`方法,传入`RemoteViews`对象,可以实现高度定制的通知界面。 接...
通过研究这些文件,开发者可以学习如何根据实际需求创建具有个性化特性的通知,例如添加自定义布局、使用自定义视图或者实现滑动关闭等功能。 总之,Android自定义Notification是一项关键技能,它帮助开发者创造出...
在上面的代码中,我们可以看到Notification消息通知的自定义内容布局是通过layout_item.xml布局文件来实现的。在这个布局文件中,我们定义了一个RelativeLayout,并在其中添加了几个TextView控件和一个ImageView控件...
在"mooc_android_lesson19_Notification自定义布局音乐播放的信息提示"这门课程中,我们将深入学习如何使用Notification来创建一个模拟音乐播放的应用信息提示。 首先,Notification的基本使用涉及到`...
本文将深入解析如何通过Android源码实现一个通知栏常驻的Notification。 首先,我们需要理解Notification的工作原理。在Android系统中,Notification是由`NotificationManager`服务管理的,开发者通过`Notification...
而当系统提供的默认Notification样式无法满足我们的需求时,我们可以通过RemoteView来实现自定义的通知样式。本文将深入探讨如何使用RemoteView来制作自定义Notification。 首先,理解RemoteView的原理。RemoteView...
关于交互部分,Notification中的按钮可以通过`Builder.addAction()`来添加,但这里的描述提到是“点击button”,所以可能需要在自定义布局中添加按钮。使用`RemoteViews`的`setOnClickPendingIntent()`方法为按钮...
本篇将深入探讨如何在Android中实现自定义布局的通知。 首先,我们需要了解`NotificationCompat.Builder`类,它是Android Support Library提供的一个工具类,用于构建兼容多版本Android系统的通知。`Builder`提供了...
Android提供了`Notification`类来创建和管理通知,而自定义布局则是通过设置`Notification`的`bigContentView`或`remoteInput`属性来实现。 要创建自定义布局的通知栏,首先你需要创建一个XML布局文件,这个文件将...
理解如何设置图标和使用`NotificationCompat.Builder`是基础,进一步研究自定义布局和扩展功能将使你的Notification更加引人注目。在实践中,应始终遵循Android的设计指南,确保通知的易用性和一致性。
4.1创建自定义布局的notification 布局包含progressbar progressbar颜色可以变 自定义progressbar 布局中多个按钮可以点击 动态更新notification中的progressbar
这个是通知栏框架(Notificaiton)的全面学习,里面把大概所有的情况都列了出来,通过一个DEMO让你了解它的大致所有使用过程。 可以通过以下博文进行配套了解(有效果图): ...
本项目“Android自定义通知栏Notification”旨在实现一个功能丰富的通知栏组件,其主要涉及以下关键知识点: 1. **Notification的创建**: - 使用`NotificationCompat.Builder`类来构建自定义的通知。这是Android...
- 可以使用`bigTextStyle.bigText()`来设置大文本,`addBigContentView()`添加自定义布局,展示更丰富的信息,如图片、额外的文字等。 - 对于音乐播放、天气预报等需要展示更多信息的应用,big View是理想的选择。...
综上所述,自定义Notification涉及到许多细节,包括但不限于图标、标题、内容、优先级、点击行为、自定义布局、附加操作以及声音和震动效果等。通过合理利用这些特性,开发者可以创建出具有高度交互性和个性化的通知...
在“notificationdemo”项目中,你可以找到相关的代码示例,包括创建基本通知、自定义布局的通知以及如何处理不同版本的兼容性问题。通过学习和实践这些示例,你将能够更好地理解和运用Notification系统通知和自定义...
总结来说,在不使用自定义布局的情况下,通过设置`Notification`对象的`icon`属性为自定义图标的资源ID,可以实现自定义通知栏图标。尽管这种方法无法对布局进行深入定制,但对于简单的图标替换,它提供了足够的灵活...
2. 对于更复杂的进度条需求,可以自定义视图来实现。 三、自定义视图 1. 创建RemoteViews对象,用于定义通知的布局。 ```java RemoteViews views = new RemoteViews(getPackageName(), R.layout.custom_...
6. **扩展功能**:为了实现类似UC浏览器的附加功能,如滑动清除、长按操作等,我们需要在自定义布局中添加相应的事件监听器,并在Java代码中处理这些事件。 在项目“TextWsjDemo”中,我们可以看到相关的代码实现。...