`
que2010
  • 浏览: 73851 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

【转】实现自定义布局的Notification

阅读更多

转自: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的实现,并没有做出很炫的效果!就到这吧!

 

分享到:
评论

相关推荐

    实现自定义的弹出通知视图(Notification)-定制颜色、图标等

    如果需要更复杂的布局,可以使用`RemoteViews`来构建自定义的视图,并通过`setContentView(RemoteViews view)`方法设置。 通知的样式也可以定制。例如,`setStyle(NotificationCompat.BigPictureStyle style)`可以...

    自定义Notification样例工程

    4. **自定义布局(Custom Layout)**:如果以上仍无法满足需求,可以使用`RemoteViews`来创建完全自定义的通知布局。通过`Builder`的`setContent`方法,传入`RemoteViews`对象,可以实现高度定制的通知界面。 接...

    Android自定义Notification

    通过研究这些文件,开发者可以学习如何根据实际需求创建具有个性化特性的通知,例如添加自定义布局、使用自定义视图或者实现滑动关闭等功能。 总之,Android自定义Notification是一项关键技能,它帮助开发者创造出...

    Notification消息通知 自定义消息通知内容布局

    在上面的代码中,我们可以看到Notification消息通知的自定义内容布局是通过layout_item.xml布局文件来实现的。在这个布局文件中,我们定义了一个RelativeLayout,并在其中添加了几个TextView控件和一个ImageView控件...

    mooc_android_lesson19_Notification自定义布局音乐播放的信息提示

    在"mooc_android_lesson19_Notification自定义布局音乐播放的信息提示"这门课程中,我们将深入学习如何使用Notification来创建一个模拟音乐播放的应用信息提示。 首先,Notification的基本使用涉及到`...

    安卓Android源码——实现Notification的通知栏常驻.rar

    本文将深入解析如何通过Android源码实现一个通知栏常驻的Notification。 首先,我们需要理解Notification的工作原理。在Android系统中,Notification是由`NotificationManager`服务管理的,开发者通过`Notification...

    RemoteView制作自定义Notification

    而当系统提供的默认Notification样式无法满足我们的需求时,我们可以通过RemoteView来实现自定义的通知样式。本文将深入探讨如何使用RemoteView来制作自定义Notification。 首先,理解RemoteView的原理。RemoteView...

    自定义notification

    关于交互部分,Notification中的按钮可以通过`Builder.addAction()`来添加,但这里的描述提到是“点击button”,所以可能需要在自定义布局中添加按钮。使用`RemoteViews`的`setOnClickPendingIntent()`方法为按钮...

    安卓通知栏自定义布局

    本篇将深入探讨如何在Android中实现自定义布局的通知。 首先,我们需要了解`NotificationCompat.Builder`类,它是Android Support Library提供的一个工具类,用于构建兼容多版本Android系统的通知。`Builder`提供了...

    自定义布局通知栏

    Android提供了`Notification`类来创建和管理通知,而自定义布局则是通过设置`Notification`的`bigContentView`或`remoteInput`属性来实现。 要创建自定义布局的通知栏,首先你需要创建一个XML布局文件,这个文件将...

    自定义Notification

    理解如何设置图标和使用`NotificationCompat.Builder`是基础,进一步研究自定义布局和扩展功能将使你的Notification更加引人注目。在实践中,应始终遵循Android的设计指南,确保通知的易用性和一致性。

    自定义包含变色progressbar的notification

    4.1创建自定义布局的notification 布局包含progressbar progressbar颜色可以变 自定义progressbar 布局中多个按钮可以点击 动态更新notification中的progressbar

    Android 通知栏Notification的全面整合学习(完整项目源码)附配套博文

    这个是通知栏框架(Notificaiton)的全面学习,里面把大概所有的情况都列了出来,通过一个DEMO让你了解它的大致所有使用过程。 可以通过以下博文进行配套了解(有效果图): ...

    Android自定义通知栏Notification

    本项目“Android自定义通知栏Notification”旨在实现一个功能丰富的通知栏组件,其主要涉及以下关键知识点: 1. **Notification的创建**: - 使用`NotificationCompat.Builder`类来构建自定义的通知。这是Android...

    Notification最新用法、实现Notification的通知栏常驻、Notification的big View、解决Notification点击无效

    - 可以使用`bigTextStyle.bigText()`来设置大文本,`addBigContentView()`添加自定义布局,展示更丰富的信息,如图片、额外的文字等。 - 对于音乐播放、天气预报等需要展示更多信息的应用,big View是理想的选择。...

    自定义 notification 实例

    综上所述,自定义Notification涉及到许多细节,包括但不限于图标、标题、内容、优先级、点击行为、自定义布局、附加操作以及声音和震动效果等。通过合理利用这些特性,开发者可以创建出具有高度交互性和个性化的通知...

    Notification系统通知和自定义通知小列子

    在“notificationdemo”项目中,你可以找到相关的代码示例,包括创建基本通知、自定义布局的通知以及如何处理不同版本的兼容性问题。通过学习和实践这些示例,你将能够更好地理解和运用Notification系统通知和自定义...

    Android不使用自定义布局情况下实现自定义通知栏图标的方法

    总结来说,在不使用自定义布局的情况下,通过设置`Notification`对象的`icon`属性为自定义图标的资源ID,可以实现自定义通知栏图标。尽管这种方法无法对布局进行深入定制,但对于简单的图标替换,它提供了足够的灵活...

    Notification用法详解,包含自定义视图

    2. 对于更复杂的进度条需求,可以自定义视图来实现。 三、自定义视图 1. 创建RemoteViews对象,用于定义通知的布局。 ```java RemoteViews views = new RemoteViews(getPackageName(), R.layout.custom_...

    notification自定义通知栏,高仿UC浏览器360通知栏

    6. **扩展功能**:为了实现类似UC浏览器的附加功能,如滑动清除、长按操作等,我们需要在自定义布局中添加相应的事件监听器,并在Java代码中处理这些事件。 在项目“TextWsjDemo”中,我们可以看到相关的代码实现。...

Global site tag (gtag.js) - Google Analytics