- 博客(60)
- 资源 (4)
- 收藏
- 关注
原创 Java8特性④Stream收集数据
归约和汇总查找流中的最大值和最小值汇总连接字符串Collectorsreducing分组多级分组按子集收集数据分区小结附录Dish类 收集器可以简洁而灵活地定义collect用来生成结果集合的标准。更具体地说,对流调用 collect 方法将对流中的元素触发一个归约操作(由Collector来参数化)。一般来说,Collector 会对元素应用一个转换函数(很多时候是不体现任何
2017-05-06 16:01:34 458
原创 Java8特性③Stream的使用
筛选和切片谓词筛选筛选重复的元素限制元素数量跳过指定数量的元素映射map 操作flatMap 操作查找和匹配anyMatchallMatchnonMatchfindAnyfindFirstOptional归约reduce元素求和最大值最小值数值流原始类型流特化数值范围数值流应用勾股数构建流值创建流数组创建流文件生成流函数生成流创建无限流示例实战
2017-05-03 10:21:22 467
原创 Java8特性②Stream简介
流是什么流简介流与集合流操作中间操作终端操作使用流参考资料流是什么流是Java API的新成员,它允许你以声明性方式处理数据集合(通过查询语句来表达,而不是临时编写一个实现)。可以把它们看成遍历数据集的高级迭代器。此外流还可以透明地并行处理,无需写任何多线程代码了。如下面代码所示:public static List<String> getLowCalorisInJava8(List
2017-05-03 10:10:15 281
原创 Java8特性① Lambda 表达式
简介概念组成表达式如何使用 Lambda函数式接口函数描述符Lambda 实践第1步行为参数化第2步函数式接口传递行为第3步执行一个行为第4步传递 Lambda使用函数式接口PredicateConsumerFunction原始类型特化常用的函数式接口类型检查推断以及限制类型检查同样的 Lambda不同的函数式接口类型推断使用局部变量方法引用如何使用
2017-05-03 10:08:39 376
原创 面向对象的原则之单一职责原则
单一职责的英文名称是Single Responsibility Principle,缩写是SRP。SRP的定义就是:就一个类而言,应该仅有一个引起它变化的原因。简单说来,一个类中应该是一组相关性很高的函数、数据的封装。单一职责的划分界限并不是总是那么清晰,很多时候需要靠个人经验来界定。当然,最大的问题就是堆职责的定义,什么是类的职责,以及怎么划分类的职责。接下来以小明的工作过程为示例描述单一职责原则
2016-03-15 09:06:51 259
原创 JavaScript基础知识
JavaScript会带你进入新境界。你已经了解了HTML标记(结构),而且知道了CSS样式(表示),剩下的就是JavaScript(行为)。如果你只知道结构和表示,当然创建一个漂亮的页面时没有问题的,不过它们只是页面而已。用JavaScript增加行为时,你就能创建一种交互式体验。JavaScript能做什么一旦有一个包含< script >元素的页面(或者包含引用,指向一个单独的JavaScri
2016-03-15 09:04:52 252
原创 HTML5入门
HTML5是下一代的HTML。什么是HTML5HTML5将成为HTML、XHTML以及HTML DOM的新标准。 HTML的上一个版本诞生于1999年。自从那以后,Web世界已经经历了巨变。HTML5仍处于完善之中。然而,大部分现代浏览器已经支持HTML5特性。HTML5是如何起步的?HTML5是W3C与WHATWG合作的结果W3C是指World Wide Web Consortium,万维网联盟
2016-03-15 09:03:12 387
原创 Android 5.x之 Notification
Android 5.x之 NotificationNotification可以让我们在获得消息的时候,在状态栏、锁屏界面来显示相应的消息,如果没有Notification的话,很难想象我们的QQ和微信以及其他应用就没有办法主动通知我们,我们需要时候打开手机检查是否有新的消息到来,而这着实让人不爽。接下来,我们介绍三种Notification,分别是普通Notification,折叠式Notifica
2016-03-12 22:17:31 282
原创 Android Design Support Library之CoordinatorLayout和CollapsingToolbarLayout
CoordinatorLayout是Android Design Support Library中比较难的控件,它是用来组织它的子View之间协助的一个父View,它直接继承于ViewGroup。CoordinatorLayout默认情况下可理解是一个FrameLayout,它的布局方式是一层一层叠加上去的,这里我们来介绍它常用的两种情况。1.CoordinatorLayout实现ToolBar的隐
2016-03-08 23:36:59 340
原创 Android Design Support Library之NavigationView
NavigationView在MD设计中非常重要,之前Google提出使用Drawlayout来实现导航抽屉。这次,在Android Design Support Library中Google官方提供了NavigationView来实现导航菜单界面。下面,我们开始用NavigationView来实现抽屉菜单界面1.配置build.gradle:dependencies { compile f
2016-03-08 22:53:39 287
原创 Android 5.x之Toolbar和Palette
Toolbar是Android5.0后应用的内容的标准工具栏,可以说是ActionBar的升级版,两者不是独立的关系,要使用Toolbar还是得跟ActionBar有关系的。相比ActionBar,Toolbar最明显的一点就是变得很自由,可以随处放置,具体的使用方法和ActionBar很类似。1.Toolbar引入首先还是得引入v7包,Android studio在build.gradle配置如下
2016-02-27 23:48:36 352
原创 Android 5.x之CardView
Android 5.x版本中增加了CardView控件,CardView继承自FrameLayout类,它的功能是实现在一个卡片布局中显示相同的内容,卡片布局可以设置圆角和阴影,还可以布局其他的View。CardView即可作为一般的布局使用,也可以作为RecyclerView的Item使用。接来下,我们进入CardView学习之旅1.build.gradle首先,和RecyclerView一样,导
2016-02-27 21:46:58 449
原创 Android 5.x之RecyclerView
RecyclerView是Android官方推出的旨在取代ListView、GridView的控件,可以通过导入support-V7进行使用。据官方介绍,该控件用于在有限的窗口中展示大量数据集,同样能实现此效果的有ListView、GridView。那么有了ListView、GridView之后为什么还需要RecyclerView这样的控件呢?整体上看RecyclerView架构,它提供了一种插拔式
2016-02-26 17:03:35 290
原创 Android Design Support Library之TabLayout
TabLayout是Android Design Support Library库中的控件。Google在2015年的IO大会上,给我们带来了更加详细的Material Design设计规范,同时也给我们带来了全新的Android Design Support Library,在这个support库中,Google给我们提供了更加规范的MD设计风格的控件。最重要的是,Android Design S
2016-02-26 14:48:38 288
原创 Android群英传之Android性能优化
1. 布局优化2. 内存优化3. 性能分析工具 4. 电量优化1. 布局优化系统在渲染UI界面的时候将消耗大量的资源,一个合格的UI不仅应该具有良好的视觉效果,更应该具有良好的使用体验,因此布局优化显得非常重要。1.1 Android UI渲染机制人眼所感觉的流畅画面,需要画面的帧数达到40帧每秒到60帧每秒。在Android中,系统通过VSYNC信号出发对UI的渲染、重绘,其间隔时间是1
2016-02-17 17:43:20 708
原创 Android群英传之Android绘图机制与处理技巧
1. Android绘图2. Android图像处理3. SurfaceView的使用1. Android绘图1.1 2D绘图1.2 Android XML绘图1.3 Android绘图技巧1.1 2D绘图 系统通过提供的Canvas对象来提供绘图方法。它提供了各种绘制图像的API,如drawPoint(点)、drawLine(线)、drawRect(矩形)、drawVertice
2016-02-17 17:33:47 395
原创 Android群英传之Android动画机制与使用技巧
Android动画机制与使用技巧1. Android视图动画2. Android属性动画3. Android布局动画4. Interpolators(插值器)5. 自定义动画6. 视图动画与属性动画的区别1. Android视图动画 Android框架定义了透明度、旋转、位移、缩放几种常见的动画,而且控制的是整个View,实现原理是每次绘制视图时View所在的ViewGroup中
2016-02-17 17:28:38 483
原创 Android群英传之Android Scroll分析
Android Scroll分析1. 滑动效果是如何产生的2. 实现滑动的方法1. 滑动效果是如何产生的 滑动一个View,本质上来说就是移动一个View。改变其当前所处的位置,它的原理都是通过不断改变View的坐标来实现这一效果。要实现View的滑动就必须监听用户触摸的事件,并根据事件传入的坐标,动态且不断改变View的坐标,从而实现View跟随用户触摸的滑动而滑动。1.1 Andro
2016-02-17 17:26:45 258
原创 Android群英传之Activity与Activity调用栈分析
Activity与Activity调用栈分析2015/12/7 16:28:54 1. Activty2. Android任务栈简介3. AndroidMainifest启动模式4. Intent Flag启动模式5. 清空任务栈6. Activity任务栈使用1. ActivtyActivity作为四大组件中出现频率最高的组件,我们再Android的各个地方都能看见它的影子。了解Ac
2016-02-17 17:25:36 438
转载 Android官方数据绑定框架DataBinding
转载自一叶飘舟Android新推出了一个官方的数据绑定框架Data Binding Library,既然是官方推出的新玩意,我们就有必要了解一下Android新带来的数据绑定框架,等到该框架推出正式版的时候,我们就可以快速地运用到项目中去。数据绑定框架给我们带来了很大的方便性,以前我们可能需要在Activity里写很多的findViewById,烦人的代码也增加了我们代码的耦合性,现在我们马上就可以
2016-02-16 20:34:40 857
原创 Android studio启动时禁止更新
在Android Studio安装目录/bin/idea.properties文件中加入如下这行代码disable.android.first.run=true
2016-02-16 11:02:17 2640
转载 Android样式之Shape
转载自Keegan小钢引言RectangleOvalLineRing引言一个应用,应该保持一套统一的样式,包括Button、EditText、ProgressBar、Toast、Checkbox等各种控件的样式,还包括控件间隔、文字大小和颜色、阴影等等。web的样式用css来定义,而android的样式主要则是通过shape、selector、layer-list、level-list、
2016-02-16 09:56:59 300
转载 Android样式之View Animation
Android样式的开发:View Animation篇 转载自Keegan小钢drawable汇总篇讲过两个动画,animation-list定义帧动画,animated-rotate定义旋转动画,这两个属于drawable动
2016-02-16 09:56:45 201
转载 Android样式之Property Animation
Android样式的开发:Property Animation篇 转载自Keegan小钢前篇文章说过,Android框架还提供了两种动画体系,前一篇已经总结了视图动画(View Animation)的用法,本篇则接着总结另一种动画体系——属性动画(Property Animation)的用法。视图动画只能作用于View,而且视图动画改变的只是View的绘制效果,View
2016-02-16 09:56:26 205
转载 Android样式之Selector
转载自Keegan小钢shape只能定义单一的形状,而实际应用中,很多地方比如按钮、Tab、ListItem等都是不同状态有不同的展示形状。举个例子,一个按钮的背景,默认时是一个形状,按下时是一个形状,不可操作时又是另一个形状。有时候,不同状态下改变的不只是背景、图片等,文字颜色也会相应改变。而要处理这些不同状态下展示什么的问题,就要用selector来实现了。selector标签,可以添加一个或多
2016-02-16 09:56:04 380
转载 Android样式之layer-list
转载自Keegan小钢上图Tab的背景效果,和带阴影的圆角矩形,是怎么实现的呢?大部分的人会让美工切图,用点九图做背景。但是,如果只提供一张图,会怎么样呢?比如,中间的Tab背景红色底线的像素高度为4px,那么,在mdpi设备上显示会符合预期,在hdpi设备上显示时会细了一点点,在xhdpi设备上显示时会再细一点,在xxhdpi上显示时又细了,在xxxhdpi上显示时则更细了。因为在xxxhdpi上
2016-02-16 09:55:49 182
转载 Android样式之drawable
转载自Keegan小钢普通图片Bitmap标签点九图片nine-patch标签color标签inset标签clip标签scale标签level-list标签transition标签rotate标签animation-list标签animated-rotate标签结束Android有很多种drawable类型,除了前几篇详细讲解的shape、selector、layer-
2016-02-16 09:55:35 555
转载 Android样式之Style
Android样式6:Style2015/12/2 16:10:57 转载自Keegan小钢前言样式的定义主题前言 整合所有资源,定义成统一的样式。哪些该定义成统一的样式呢? 举几个例子吧:每个页面标题栏的标题基本会有一样的字体大小、颜色、对齐方式、内间距、外间距等,这就可以定义成样式;很多按钮也都使用一致的背景、内间距、文字颜色、文字大小、文字的对齐方式等,这也可以定义成样式;
2016-02-16 09:54:48 300
原创 第一行代码笔记之七高级技巧
1. 全局获取Context public class MyApplication extends Application { private static Context mContext; @Override public void onCreate() { super.onCreate(); mC
2016-02-15 17:34:21 206
原创 第一行代码笔记之六Service
服务1.服务是什么2.Android多线程编程3.服务的基本用法4.服务的声明周期5.服务的更多技巧6.服务的最佳实践1.服务是什么服务(Service)是Android中实现程序后台运行的解决方案它非常适合用于去执行那些不需要和用户交互而且还要长期运行的任务。服务的运行不依赖于任何用户界面,即使当程序切换到后台,或者用户打开了另外一个应用程序,服务仍然能够保持正常运行。需要注意的是,
2016-02-15 17:32:07 429
原创 第一行代码笔记之五数据持久化
1. 文件存储2. SharedPreference3. SQLite4. SQLite数据库的最佳实践简介数据持久化就是将那些在内存中的瞬时数据保存到存储设备中,保证计时在设备掉电的情况下,这些数据仍然不会丢失。保存在内存中的数据是处于瞬时状态的,而保存在存储设备中的数据是处于持久状态的,持久化技术则是提供了一种机制可以让数据在瞬时状态和持久化状态之间进行转换。1. 文件存储文件存储是An
2016-02-15 17:26:29 237
原创 第一行代码笔记之四广播接收者
1. 广播机制简介2. 接收系统广播3. 发送自定义广播4. 使用本地广播5. 广播的最佳实践-实现强制下线功能1. 广播机制简介为什么说Android中的广播机制灵活呢?这是因为Android中的每个应用程序都可以对自己感兴趣的广播进行注册,这样该程序就只会接收到自己所关心的广播内容,这些广播可能是来自系统的,也可能是来自于其他应用程序的。Android提供了一套完整的API,允许应用程
2016-02-15 17:19:05 226
原创 第一行代码笔记之三Fragment
1. Fragment是什么2. Fragment使用方式3. Fragment生命周期4. 动态加载布局的技巧5. Fragment的最佳实践1. Fragment是什么碎片( Fragment)是一种可以嵌入在活动当中的 UI 片段,它能让程序加合理和充分地利用大屏幕的空间,因而在平板上应用的非常广泛。2. Fragment使用方式2.1 Fragment的简单用法新建一个左侧碎片布局
2016-02-15 17:08:41 427
原创 第一行代码笔记之二Activity
1. Activity是什么2. Activity的基本用法3. 使用Intent在Activity之间跳转4. Activity的生命周期5. Activity的启动模式6. Activity的最佳实践1. Activity是什么Activity是一种可以包含用户界面的组件,主要用于和用户进行交互。一个应用程序中可以包含零个或多个活动,但不包含任何Activity的活动很少见。2. A
2016-02-15 16:56:11 758
原创 第一行代码笔记之一Android系统架构
Android系统架构Android可以大致分为四层架构,五块区域1 Linux内核层Linux层,Android中最低层的核心部分。Linux层包含了Android系统的核心服务,包括硬件驱动、进程管理、安全系统、Binder驱动、Logcat驱动等。2 系统运行库层和Dalvik或ART2.1 系统运行库层这一层通过一些C/C++库为Android系统提供了主要特性的支持,如SQLite库、Su
2016-02-15 16:40:59 294
原创 View之Spinner
1.条目Menu <?xml version="1.0" encoding="utf-8"?> <resources> <string-array name="colors"> <item>red</item> <item>orange</item> <item>yellow</item>
2016-02-15 16:33:32 229
原创 View之PopupMenu
1.Menu布局 <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/search" android:icon="@android:drawable/ic_menu_search" android:
2016-02-15 16:29:56 270
原创 View之ExpandableLists
ExpandableLists2016/2/1 10:16:27 1. Custom Adapter实现 public class Expandable1 extends ExpandableListActivity { private MyExpandableListAdapter mAdapter; @Override public void
2016-02-15 16:27:56 270
原创 View之DateTimePicker
DateTimePicker2016/1/29 16:02:08 1. 布局<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content"
2016-02-15 16:24:30 363
原创 View之Controls
Controls2016/2/1 10:10:13 1.布局 <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"
2016-02-15 16:15:22 598
Java 8实战
2017-10-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人