android的消息通知栏 - 阿里云开发者社区

文章推薦指數: 80 %
投票人數:10人

下面就来说说经常会使用到通知机制中的通知栏框架(Notificaiton),它适用于交互事件的通知。

它是位于顶层可以展开的通知列表。

它会时不时的提醒你什么软件该更新了, ... 开发者社区> code_xzh> 正文 阿里云 为了无法计算的价值 打开APP 阿里云APP内打开 android的消息通知栏 2014-07-03 1295 简介: 在android的应用层中,涉及到很多应用框架,例如:Service框架,Activity管理机制,Broadcast机制,对话框框架,标题栏框架,状态栏框架,通知机制,ActionBar框架等等。

下面就来说说经常会使用到通知机制中的通知栏框架(Notificaiton),它适用于交互事件的通知。

它是位于顶层可以展开的通知列表。

它会时不时的提醒你什么软件该更新了,什么人发你微信消息了等 +关注继续查看 在android的应用层中,涉及到很多应用框架,例如:Service框架,Activity管理机制,Broadcast机制,对话框框架,标题栏框架,状态栏框架,通知机制,ActionBar框架等等。

下面就来说说经常会使用到通知机制中的通知栏框架(Notificaiton),它适用于交互事件的通知。

它是位于顶层可以展开的通知列表。

它会时不时的提醒你什么软件该更新了,什么人发你微信消息了等。

(网上看了下,全面介绍的文章不多,所以就萌生了写这篇的念头,随便当作回顾笔记。

下面我就通过官方文档、源代码、书上的一些资料汇总下这一块的知识,并通过一个通知栏的汇总DEMO让大家更好的了解这个类的使用,内容有点多,可以根据需求看目录学习)。

Notificaiton状态通知栏: 功能作用 1.显示接收到短消息、即使消息等信息(如QQ、微信、新浪、短信) 2.显示客户端的推送消息(如有新版本发布,广告,推荐新闻等) 3.显示正在进行的事物(例如:后台运行的程序)(如音乐播放器、版本更新时候的下载进度等) 思维导图结构 思维导图的大体结构(按照各个节点延伸拓展学习) Notificaiton--service -- BroadcastReceiver --Intent(flag、Action等属性应用)-- PendingIntent 感慨: 一个Notificaiton通知的拓展使用就要涉及与4大组建的配合,所以学好整体的知识体系。

联系: 1.由于service是在后台运行,所以它意图做什么我们看不到,可以通过Notificaiton来显示提醒(如音乐的后台播放)。

2.service服务和BroadcastReceiver广播相结合,在加上Notificaiton 显示(如程序的后台更新)。

3.Intent作为意图处理,和Notificaiton的点击时间紧密结合在了一起,并且与BroadcastReceiver和service的联系也紧密不可以分割。

(service在后台之后通过BroadcastReceiver来通知Notificaiton 显示相关东西,在通过Intent完成用户的意图操作) 相关文档:Activity启动模式 及IntentFlags与栈的关联分析 对应的官方链接 设计文档:   官方:http://developer.android.com/design/patterns/notifications.html 译文:http://adchs.github.io/patterns/notifications.html 使用教程:http://developer.android.com/training/notify-user/index.html  开发文档:http://developer.android.com/reference/android/app/Notification.html 大体了解 Notification支持文字内容显示、震动、三色灯、铃声等多种提示形式,在默认情况下,Notification仅显示消息标题、消息内容、送达时间这3项内容。

以下就是通知的基本布局。

通知的基本布局: 普通视图: 高度64dp 大试图的通知在展开前也显示为普通视图 元素: 1. 标题 Title/Name 2. 大图标  Icon/Photo 3. 内容文字   4. 内容信息  MESSAGE 5. 小图标Secondary Icon 6. 通知的时间Timestamp,默认为系统发出通知的时间,也可通过setWhen()来设置 相关分析 状态通知栏主要涉及到2个类: Notification和 NotificationManager  Notification为通知信息类,它里面对应了通知栏的各个属性 NotificationManager : 是状态栏通知的管理类,负责发通知、清除通知等操作。

注意:NotificationManager是一个系统Service,所以必须通过 getSystemService(NOTIFICATION_SERVICE)方法来获取,方法如下。

[java] viewplaincopy NotificationManager mNotificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);   使用步骤: 流程模块: 第一步: 创建一个通知栏的Builder构造类 (CreateaNotificationBuilder) 第二步: 定义通知栏的Action (DefinetheNotification'sAction) 第三步: 设置通知栏点击事件  (SettheNotification'sClickBehavior) 第四步: 通知 (IssuetheNotification) 代码模块: 实现系统默认的通知栏效果: 第一步:获取状态通知栏管理: [java] viewplaincopy NotificationManager mNotificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);   第二步:实例化通知栏构造器NotificationCompat.Builder: [java] viewplaincopy NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this);   第三步:对Builder进行配置: [java] viewplaincopy mBuilder.setContentTitle("测试标题")//设置通知栏标题       .setContentText("测试内容") //设置通知栏显示内容       .setContentIntent(getDefalutIntent(Notification.FLAG_AUTO_CANCEL)) //设置通知栏点击意图   //  .setNumber(number) //设置通知集合的数量       .setTicker("测试通知来啦") //通知首次出现在通知栏,带上升动画效果的       .setWhen(System.currentTimeMillis())//通知产生的时间,会在通知信息里显示,一般是系统获取到的时间       .setPriority(Notification.PRIORITY_DEFAULT) //设置该通知优先级   //  .setAutoCancel(true)//设置这个标志当用户单击面板就可以让通知将自动取消         .setOngoing(false)//ture,设置他为一个正在进行的通知。

他们通常是用来表示一个后台任务,用户积极参与(如播放音乐)或以某种方式正在等待,因此占用设备(如一个文件下载,同步操作,主动网络连接)       .setDefaults(Notification.DEFAULT_VIBRATE)//向通知添加声音、闪灯和振动效果的最简单、最一致的方式是使用当前的用户默认设置,使用defaults属性,可以组合       //Notification.DEFAULT_ALL  Notification.DEFAULT_SOUND 添加声音 // requires VIBRATE permission       .setSmallIcon(R.drawable.ic_launcher);//设置通知小ICON   对应的各个方法的属性(部分方法以上代码中已经作注释,就不再介绍): (1)方法:设置提醒标志符Flags 功能:提醒标志符,向通知添加声音、闪灯和振动效果等设置达到通知提醒效果,可以组合多个属性 有2种设置方法: 1.实例化通知栏之后通过给他添加.flags属性赋值。

[java] viewplaincopy Notification notification = mBuilder.build();   notification.flags = Notification.FLAG_AUTO_CANCEL;   2.通过setContentIntent(intent)方法中的意图设置对应的flags [java] viewplaincopy public PendingIntent getDefalutIntent(int flags){       PendingIntent pendingIntent= PendingIntent.getActivity(this, 1, new Intent(), flags);       return pendingIntent;   }   提醒标志符成员: Notification.FLAG_SHOW_LIGHTS       //三色灯提醒,在使用三色灯提醒时候必须加该标志符 Notification.FLAG_ONGOING_EVENT     //发起正在运行事件(活动中) Notification.FLAG_INSISTENT  //让声音、振动无限循环,直到用户响应 (取消或者打开) Notification.FLAG_ONLY_ALERT_ONCE //发起Notification后,铃声和震动均只执行一次 Notification.FLAG_AUTO_CANCEL   //用户单击通知后自动消失 Notification.FLAG_NO_CLEAR     //只有全部清除时,Notification才会清除 ,不清楚该通知(QQ的通知无法清除,就是用的这个) Notification.FLAG_FOREGROUND_SERVICE  //表示正在运行的服务 (2)方法:.setDefaults(intdefaults)  (NotificationCompat.Builder中的方法,用于提示) 功能:向通知添加声音、闪灯和振动效果的最简单、使用默认(defaults)属性,可以组合多个属性(和方法1中提示效果一样的) 对应属性: Notification.DEFAULT_VIBRATE  //添加默认震动提醒 需要VIBRATEpermission Notification.DEFAULT_SOUND  // 添加默认声音提醒 Notification.DEFAULT_LIGHTS// 添加默认三色灯提醒 Notification.DEFAULT_ALL// 添加默认以上3种全部提醒 (3)方法:setVibrate(long[]pattern) 功能:设置震动方式。

使用: [java] viewplaincopy .setVibrate(new long[] {0,300,500,700});   实现效果:延迟0ms,然后振动300ms,在延迟500ms,接着在振动700ms。

以上方法的还有种写法是 [java] viewplaincopy mBuilder.build().vibrate = new long[] {0,300,500,700};   以此类推,2种写法都可以。

如果希望设置默认振动方式,设置了方法(2)中默认为DEFAULT_VIBRATE即可。

(4)方法:.setLights(intledARGB ,intledOnMS ,intledOffMS ) 功能:android支持三色灯提醒,这个方法就是设置不同场景下的不同颜色的灯。

描述:其中ledARGB表示灯光颜色、 ledOnMS亮持续时间、ledOffMS暗的时间。

注意:1)只有在设置了标志符Flags为Notification.FLAG_SHOW_LIGHTS的时候,才支持三色灯提醒。

     2)这边的颜色跟设备有关,不是所有的颜色都可以,要看具体设备。

使用: [java] viewplaincopy .setLights(0xff0000ff, 300, 0)   同理,以下方法也可以设置同样效果: [java] viewplaincopy Notification notify = mBuilder.build();   notify.flags = Notification.FLAG_SHOW_LIGHTS;   notify.ledARGB = 0xff0000ff;   notify.ledOnMS = 300;   notify.ledOffMS = 300;   如果希望使用默认的三色灯提醒,设置了方法(2)中默认为DEFAULT_LIGHTS即可。

(5)方法:.setSound(sound) 功能:设置默认或则自定义的铃声,来提醒。

[java] viewplaincopy //获取默认铃声   .setDefaults(Notification.DEFAULT_SOUND)   //获取自定义铃声   .setSound(Uri.parse("file:///sdcard/xx/xx.mp3"))   //获取Android多媒体库内的铃声   .setSound(Uri.withAppendedPath(Audio.Media.INTERNAL_CONTENT_URI, "5"))   同理相同效果的另一种设置方法这边就不讲,和上面的都是一样的。

(6)方法:.setPriority(intpri) 功能:设置优先级 对应优先级描述如下图: 优先级 用户 MAX 重要而紧急的通知,通知用户这个事件是时间上紧迫的或者需要立即处理的。

HIGH 高优先级用于重要的通信内容,例如短消息或者聊天,这些都是对用户来说比较有兴趣的。

DEFAULT 默认优先级用于没有特殊优先级分类的通知。

LOW 低优先级可以通知用户但又不是很紧急的事件。

MIN 用于后台消息(例如天气或者位置信息)。

最低优先级通知将只在状态栏显示图标,只有用户下拉通知抽屉才能看到内容。

对应属性(作用看上图就可知道): Notification.PRIORITY_DEFAULT Notification.PRIORITY_HIGH Notification.PRIORITY_LOW Notification.PRIORITY_MAX Notification.PRIORITY_MIN (7)方法:setOngoing(booleanongoing) 功能:设置为ture,表示它为一个正在进行的通知。

他们通常是用来表示一个后台任务,用户积极参与(如播放音乐)或以某种方式正在等待,因此占用设备(如一个文件下载,同步操作,主动网络连接) (8)方法:setProgress(intmax,intprogress,booleanindeterminate) 属性:max:进度条最大数值 、progress:当前进度、indeterminate:表示进度是否不确定,true为不确定,如下第3幅图所示 ,false为确定下第1幅图所示 功能:设置带进度条的通知,可以在下载中使用 效果图如下:       注意:此方法在4.0及以后版本才有用,如果为早期版本:需要自定义通知布局,其中包含ProgressBar视图 使用:如果为确定的进度条:调用setProgress(max, progress,false)来设置通知,在更新进度的时候在此发起通知更新progress,并且在下载完成后要移除进度条,通过调用setProgress(0, 0,false)既可。

如果为不确定(持续活动)的进度条,这是在处理进度无法准确获知时显示活动正在持续,所以调用setProgress(0, 0,true) ,操作结束时,调用setProgress(0, 0,false)并更新通知以移除指示条 第四步:设置通知栏PendingIntent(点击动作事件等都包含在这里) 在第三步中,没有提到一个方法,就是setContentIntent( intent)这个方法,这里拿到这里讲。

知识点 1)什么是PendingIntent PendingIntent和Intent略有不同,它可以设置执行次数,主要用于远程服务通信、闹铃、通知、启动器、短信中,在一般情况下用的比较少。

2)PendingIntent什么用 Notification支持多种Intent来响应单击事件、消除事件、处理紧急状态的全屏事件等。

这里就用到了setContentIntent( intent)来处理以上这么多的事件。

3)相关属性和方法 属性: PendingIntent的位标识符: FLAG_ONE_SHOT 表示返回的PendingIntent仅能执行一次,执行完后自动取消 FLAG_NO_CREATE   表示如果描述的PendingIntent不存在,并不创建相应的PendingIntent,而是返回NULL FLAG_CANCEL_CURRENT    表示相应的PendingIntent已经存在,则取消前者,然后创建新的PendingIntent,这个有利于数据保持为最新的,可以用于即时通信的通信场景 FLAG_UPDATE_CURRENT  表示更新的PendingIntent 方法: 可以看出,它支持多种相应方式,有Activity、Broadcast、Service,就根据你自身需求去选择。

在各种情况下情况下它还会根据各种情况出发效果: contentIntent:在通知窗口区域,Notification被单击时的响应事件由该intent触发; deleteIntent:当用户点击全部清除按钮时,响应该清除事件的Intent; fullScreenIntent:响应紧急状态的全屏事件(例如来电事件),也就是说通知来的时候,跳过在通知区域点击通知这一步,直接执行fullScreenIntent代表的事件。

例如:在执行了点击通知之后要跳转到指定的XXX的Activity的时候,可以设置以下方法来相应点击事件: [java] viewplaincopy Intent intent = new Intent(context,XXX.class);   PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0);   mBuilder.setContentIntent(pendingIntent)   例如:在执行了清空全部的通知操作时候,可以设置以下方法来相应这个事件: 采用setDeleteIntent(intent)方法或按照以下写法 [java] viewplaincopy Intent deleteIntent = new Intent();   deleteIntent.setClass(context, XXXReceiver.class);   deleteIntent.setAction(DELETE_ACTION);   notification.deleteIntent = PendingIntent.getBroadcast(context, 0, deleteIntent, 0);   例如:在响应紧急事件(如来电)时候,可以设置以下方法来相应这个事件: 采用setFullScreenIntent(intent,booleanhighPriority) 第五步,最简单的一部,发送通知请求 [java] viewplaincopy mNotificationManager.notify(notifyId, mBuilder.build());   拓展 实现自定义的通知栏效果: 这里要用到RemoteViews这个类。

实现以下2种自定义布局。

注意: Notification的自定义布局是RemoteViews,和其他RemoteViews一样,在自定义视图布局文件中,仅支持FrameLayout、LinearLayout、RelativeLayout三种布局控件和AnalogClock、Chronometer、Button、ImageButton、ImageView、ProgressBar、TextView、ViewFlipper、ListView、GridView、StackView和AdapterViewFlipper这些显示控件,不支持这些类的子类或Android提供的其他控件。

否则会引起ClassNotFoundException异常 步骤如下: 1)创建自定义视图 2)获取远程视图对象(注:Notification的contentView不能为空) 3)设置PendingIntent(来响应各种事件) 4)发起Notification 大体4步骤这里就不详细说了,下面就把DEMO中的列子拿出来说下 样式: 1.自定义带按钮通知栏(如下样式) 正在进行的 “正在进行的”通知使用户了解正在运行的后台进程。

例如,音乐播放器可以显示正在播放的音乐。

也可以用来显示需要长时间处理的操作,例如下载或编码视频。

“正在进行的”通知不能被手动删除。

实现方法如下: [java] viewplaincopy /**       * 带按钮的通知栏       */       public void showButtonNotify(){           NotificationCompat.Builder mBuilder = new Builder(this);           RemoteViews mRemoteViews = new RemoteViews(getPackageName(), R.layout.view_custom_button);           mRemoteViews.setImageViewResource(R.id.custom_song_icon, R.drawable.sing_icon);           //API3.0 以上的时候显示按钮,否则消失           mRemoteViews.setTextViewText(R.id.tv_custom_song_singer, "周杰伦");           mRemoteViews.setTextViewText(R.id.tv_custom_song_name, "七里香");           //如果版本号低于(3。

0),那么不显示按钮           if(BaseTools.getSystemVersion() <= 9){               mRemoteViews.setViewVisibility(R.id.ll_custom_button, View.GONE);           }else{               mRemoteViews.setViewVisibility(R.id.ll_custom_button, View.VISIBLE);           }           //           if(isPlay){               mRemoteViews.setImageViewResource(R.id.btn_custom_play, R.drawable.btn_pause);           }else{               mRemoteViews.setImageViewResource(R.id.btn_custom_play, R.drawable.btn_play);           }           //点击的事件处理           Intent buttonIntent = new Intent(ACTION_BUTTON);           /* 上一首按钮 */           buttonIntent.putExtra(INTENT_BUTTONID_TAG, BUTTON_PREV_ID);           //这里加了广播,所及INTENT的必须用getBroadcast方法           PendingIntent intent_prev = PendingIntent.getBroadcast(this, 1, buttonIntent, PendingIntent.FLAG_UPDATE_CURRENT);           mRemoteViews.setOnClickPendingIntent(R.id.btn_custom_prev, intent_prev);           /* 播放/暂停  按钮 */           buttonIntent.putExtra(INTENT_BUTTONID_TAG, BUTTON_PALY_ID);           PendingIntent intent_paly = PendingIntent.getBroadcast(this, 2, buttonIntent, PendingIntent.FLAG_UPDATE_CURRENT);           mRemoteViews.setOnClickPendingIntent(R.id.btn_custom_play, intent_paly);           /* 下一首 按钮  */           buttonIntent.putExtra(INTENT_BUTTONID_TAG, BUTTON_NEXT_ID);           PendingIntent intent_next = PendingIntent.getBroadcast(this, 3, buttonIntent, PendingIntent.FLAG_UPDATE_CURRENT);           mRemoteViews.setOnClickPendingIntent(R.id.btn_custom_next, intent_next);                      mBuilder.setContent(mRemoteViews)                   .setContentIntent(getDefalutIntent(Notification.FLAG_ONGOING_EVENT))                   .setWhen(System.currentTimeMillis())// 通知产生的时间,会在通知信息里显示                   .setTicker("正在播放")                   .setPriority(Notification.PRIORITY_DEFAULT)// 设置该通知优先级                   .setOngoing(true)                   .setSmallIcon(R.drawable.sing_icon);           Notification notify = mBuilder.build();           notify.flags = Notification.FLAG_ONGOING_EVENT;           mNotificationManager.notify(notifyId, notify);       }   注意:带按钮的布局相应点击事件在3.0以下版本没有用,所以这边作了系统版本判断,来显示消失按钮。

2.自定义不带按钮通知栏 实现方法如下: [java] viewplaincopy         //先设定RemoteViews           RemoteViews view_custom = new RemoteViews(getPackageName(), R.layout.view_custom);           //设置对应IMAGEVIEW的ID的资源图片           view_custom.setImageViewResource(R.id.custom_icon, R.drawable.icon);   //      view_custom.setInt(R.id.custom_icon,"setBackgroundResource",R.drawable.icon);           view_custom.setTextViewText(R.id.tv_custom_title, "今日头条");           view_custom.setTextViewText(R.id.tv_custom_content, "金州勇士官方宣布球队已经解雇了主帅马克-杰克逊,随后宣布了最后的结果。

");   之后调用: [java] viewplaincopy mBuilder.setContent(view_custom)   来设定自定义的这个布局。

实现:大视图风格通知(注:4.1之前的版本不支持大视图) 只在通知被展开时显示 何时展开:通知处在顶端,或者用户通过收拾展开 收件箱风格的通知: 相比普通视图,只多出:7.详情区域 效果图如下: 详情区域根据用途可有多种风格: 1.NotificationCompat.BigPictureStyle 大图片风格:详情区域包含一个256dp高度的位图 2.NotificationCompat.BigTextStyle 大文字风格:显示一个大的文字块 3.NotificationCompat.InboxStyle 收件箱风格:显示多行文字  各种风格都具有以下常规视图不具有的内容选项: 1.大标题:在展开视图时替代普通视图的标记 2.总结文字:允许你在详情区域之下增加一行内容 拿收件箱风格为例,实现代码如下: [java] viewplaincopy         NotificationCompat.BigPictureStyle inboxStyle = new NotificationCompat.InboxStyle();           String[] events = new String[5];           // Sets a title for the Inbox style big view           inboxStyle.setBigContentTitle("大视图内容:");           // Moves events into the big view           for (int i=0; i                                               在2.3之后的版本中(即API>=9的版本中),在资源文件下的src/values-v9目录中的style.xml文件中设置它标题和内容的样式为: [java] viewplaincopy                                                 最后赋给自定义布局中的对应标题和内容对应的style即可。

对应解决网址: 1.http://stackoverflow.com/questions/6250356/how-to-use-default-notification-style 2.http://stackoverflow.com/questions/4867338/custom-notification-layouts-and-text-colors/7320604#7320604 3.http://developer.android.com/guide/topics/ui/notifiers/notifications.html#CustomExpandedView (官方文档) http://developer.android.com/about/versions/android-2.2-highlights.html 6.低版本中mBuilder.setProgress(100,progress,false);没用,不显示进度条 解决方法:此方法在4.0及以后版本才有用,如果为早期版本:需要自定义通知布局,其中包含ProgressBar视图 7.自定义布局的时候,不同版本方法不一样。

(弄了半天,在2.3版本不显示,原来是方法不兼容) 2.3及2.3之前: 通过 [java] viewplaincopy Notification notify = mBuilder.build();   notify.contentView = view_custom;   mNotificationManager.notify(notifyId, notify)   方法赋予VIEW。

2.3之后: 通过Builder以下方法赋于自定义布局。

mBuilder.setContent(view_custom) 这里就不贴DEMO中的代码了,大家可以下个DEMO自己看,里面也都有注释的,可能有的地方会有错误,忘大家指出,以便及时修改,谢谢。

一个DEMO让你更懂Notification DEMO截图:         版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。

具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。

如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

Java Android开发 android消息通知 android消息 android通知 android通知栏 android开发通知 开发者社区> 开发与运维 > 文章 作者高分内容 更多 微信小程序之Swiper组件 7257 Java基础之HashTable与ConcurrentHashMap解析 3395 ReactNative悬浮效果组件 3308 Java并发编程之CountDownLatch 8134 Vue入门之项目目录结构介绍 8951 相关文章 卡布学安卓 你真的懂android通知消息吗? 你真的懂android通知消息吗? 55 0 技术mix呢 Android消息循环分析 2873 0 科技小先锋 Android拖拽 738 0 吞吞吐吐的 android:进度条 745 0 feipeng8848 android的消息提示 //第一个参数:当前的上下文环境。

可用getApplicationContext()或this //第二个参数:要显示的字符串。

也可是R.string中字符串ID //第三个参数:显示的时间长短。

Toast默认的有两个LENGTH_LONG(长)和LENGTH_SHORT(短),也可以使用毫秒如2000ms Toasttoast=Toast.makeText( 588 0 wei-spring Android周报 1. https://androidsweets.ongoodbits.com/   2. https://www.androiddevdigest.com/   3.http://us12. 650 0 一生有你llx android开发之进度条 1、普通进度条        android:id="@+id/firstBar"       //设置进度条的样式为水平的     style="?android:attr/progressBarStyleHorizontal"     a... 800 0 code_xzh android抓屏 现在无论是应用,还是游戏中,都经常会有分享的功能。

分享,不仅要分享文字,也要分享应用或者游戏的屏幕截图,这样才能做到图文并茂,吸引到更多的用户。

想要做图片的分享功能,首先就需要抓屏,将当前屏幕保存为一个图片文件。

下面就是一个将当前的Activity直接保存为一个图片文件的类库,可以直接使用。

需要的,直接拿来主义就好了。

package com.gaolei.framew 1147 0 古镇月影 android瀑布流 引用:http://www.cnblogs.com/oldfeel/archive/2012/06/01/2530584.html ArcHFSearchResult. 579 0 古镇月影 android图表 引用:http://www.andjava.com/a/tab2/tab2_1/2012/0321/1734.html flot相对于使用那些基于手机端的第三方类库如AchartEngine, RChart2来说,要简单的多了,他是完全基于JQuery,我们使用WebView的JavaScr... 737 0 +关注 code_xzh 对前端移动客户端技术比较擅长。

著有《ReactNative移动开发实战》和《Kotlin入门与实战》和《Weex跨平台实战》,《ReactNative移动开发进阶》即将出版,正在努力完成《Flutter跨平台开发实战》 735 文章 1 问答 作者高分内容 更多 微信小程序之Swiper组件 7257 Java基础之HashTable与ConcurrentHashMap解析 3395 ReactNative悬浮效果组件 3308 Java并发编程之CountDownLatch 8134 Vue入门之项目目录结构介绍 8951 文章排行榜 最热 最新 1 阿里云云原生加速器企业硬之城携手阿里云Serverless应用引擎(SAE)打造低代码平台 120025 2 挑战8天完成职场入门-进阶,速来抢占求职训练营名额 137020 3 [使用ModelScope]只要5分钟,快速实现中文情感分类模型 29133 4 世界那么大,我想去看看——探索ModelScope之零样本分类 28116 5 ModelScope模型库体验之中文StructBERT系列预训练语言模型 25242 6 业务中台之上的低代码应用开发平台 302142 7 【AI征文】初识DeepRec 77054 8 云上自动化运维CloudOps系列沙龙第二弹——自动化,才高效 300124 9 【AI征文】DeepRec初识 20869 10 当我们谈论不可变基础设施时,我们在谈论什么 299588 11 【乘风伯乐奖】寻找百位乘风者伯乐,邀请新博主入驻即可获奖 25677 12 十分钟生成影视级室内设计效果,红星美凯龙设计云如何升级传统家居行业 129177 13 揭秘!真假美猴王与如来的那起运维事故 53727 14 阿里云联合平行云推出云XR平台,支持沉浸式体验应用快速落地|电子书免费下载 54271 15 镜像站体验官新一期任务发布,完善镜像站配置信息拿天猫精灵音箱 54571 16 “穿越”到虚拟世界笑风生,网易瑶台沉浸式活动平台创新云端活动体验 97226 17 云上解锁Web3.0阿里云XR平台助力彼真科技呈现沉浸式演唱会 85613 18 ModelScope--人像卡通化、人像美肤 30249 19 远光软件获得阿里云产品生态集成认证,携手阿里云共建新合作 7809 20 一张图进阶RocketMQ-消费者这个大冤种! 30649 1 优化系列|实例解析MySQL性能瓶颈排查定位 83 2 参加飞天加速计划后给我的感受 70 3 Grid网格布局学习笔记 86 4 写下你想评测的云产品,下一期评测局的主角就是它! 209 5 飞天加速计划·高校学生在家实践计划体验 52 6 Cool说丨力扣刷题,看它! 78 7 OSCAR分享之蚂蚁开源治理的方法和实践 54 8 云上新势力:阿里云边缘云蝉联中国公有云市场第一 60 9 【AI征文】Ali模型DeepRec架构设计原则 131 10 大数据计算,如何优化SQL? 78 11 ECS学生机使用体验 51 12 RDSAliSQL面向Binlog的性能优化大揭密(下)——强效瓶颈消除 53 13 跨模态学习能力再升级,EasyNLP电商文图检索效果刷新SOTA 58 14 阿里云刘伟光:剖析企业数字化的降“本”增效 326 15 BizWorks助力企业应用的高效开发与复用 65 16 一篇文章带你搞懂this的四个绑定规则✍ 278 17 PolarDB-X让简单触手可及——暨分布式数据库的去“分布式”之路 56 18 阿里云百城计划入局珠海!青莲网络携手阿里云为数字经济提供云AI动力 72 19 IDEA最便捷创建SpringBoot父子Module项目 106 20 没有海量算力,元宇宙就是海市蜃楼|大咖对话 63 推荐文章 参与开源PolarDB-PG评测,赢取天猫精灵等好礼 寻找百位乘风者伯乐,邀约新博主入驻可获乘风者定制周边及重力星球蓝牙音箱! 参加GTS云巧征文大赛,赢888元猫超卡和天猫精灵Sound 乘风者计划邀您入驻社区,精彩权益即刻享 相关电子书 更多 低代码开发师(初级)实战教程 立即下载 阿里巴巴DevOps最佳实践手册 立即下载 冬季实战营第三期:MySQL数据库进阶实战 立即下载



請為這篇文章評分?