接着上一讲,我们看到我们的Demo可以正常的运行,并且能自动加载网络图片,那么为了后面观察的方便,我们取消这种自动加载的功能,使用两个按钮来代替,分别用来增加一个数据和减少一个数据.截图如下: 正在我自认为这样的布局已经很完美的时候,产品经理A走过来指着手机说,"这样的布局太单调,给我改炫酷屌炸天一点!!!" 既然老大这么说了,我也没办法只能照办了. 想到要修改布局我第一个想到的是修改每个Item的布局文件(虽然这里我们没有布局文件,纯java写的),但仔细一想这样改了每一个Item还…
还是接着上一讲"进击的RecyclerView入门二(来点小装饰?)",在上一讲中我们学到了怎么给不同的Item定制不同的外观,但貌似那个蓝色的框实在太丑了,咱还是把它干了吧. @Override public void onDrawOver(Canvas c, RecyclerView parent, RecyclerView.State state) { //太丑了,这段还是注释掉吧 // for (int i = 0; i < parent.getChildCount();…
虽然RecyclerView面世有一段时间了,但由于它的学习成本相对较高,很多码友只是粗略的认识了一下而没有细致的品味RecyclerView的真谛. 那么从现在开始我将带你装逼带你飞,一起领略Google工程师们赋予RecyclerView独特的魅力. 首先我们看一下官方文档是怎么介绍RecyclerView的简介: A flexible view for providing a limited window into a large data set. Google的工程师写文档还真够精辟的…
JAVA之旅(二十六)--装饰设计模式,继承和装饰的区别,LineNumberReader,自定义LineNumberReader,字节流读取操作,I/O复制图片 一.装饰设计模式 其实我们自定义readLine就是一种装饰模式 当想要对已有的对象进行功能增强时,可以定义一个类,将已有对象传入,并且提供加强功能,那么自定义的该类就称为装饰类 package com.lgl.hellojava; public class HelloJJAVA { public static void main(S…
1.系列文章引言 1.1 适合谁来阅读? 本系列文章尽量使用最浅显易懂的文字.图片来组织内容,力求通信技术零基础的人群也能看懂.但个人建议,至少稍微了解过网络通信方面的知识后再看,会更有收获.如果您大学学习过<计算机网络>这门课,那么一定不要错过本系列文章. 特别推荐即时通讯开发者来阅读,因为针对移动弱网的问题,确实可以找到很多有价值的答案. 友情提示:本系列文章可能涉及以下通信技术范畴,如您有兴趣,也可自行系统地学习:   1.2 本系列文章的初衷 作为即时通讯(IM.消息推送等应用场景)相…
1.引言 本文接上篇<脑残式网络编程入门(一):跟着动画来学TCP三次握手和四次挥手>,继续脑残式的网络编程知识学习 ^_^. 套接字socket是大多数程序员都非常熟悉的概念,它是计算机网络编程的基础,TCP/UDP收发消息都靠它.我们熟悉的web服务器底层依赖它,我们用到的MySQL关系数据库.Redis内存数据库底层依赖它.我们用微信和别人聊天也依赖它,我们玩网络游戏时依赖它,读者们能够阅读这篇文章也是因为有它在背后默默地支持着网络通信. 本篇文章依然尝试使用动画图片的方式,来对这个知识…
脑残式网络编程入门(二):我们在读写Socket时,究竟在读写什么?     http://www.52im.net/thread-1732-1-1.html   1.引言 本文接上篇<脑残式网络编程入门(一):跟着动画来学TCP三次握手和四次挥手>,继续脑残式的网络编程知识学习 ^_^. 套接字socket是大多数程序员都非常熟悉的概念,它是计算机网络编程的基础,TCP/UDP收发消息都靠它.我们熟悉的web服务器底层依赖它,我们用到的MySQL关系数据库.Redis内存数据库底层依赖它.我…
MySql概述及入门(二) MySQL架构 逻辑架构图: 执行流程图: MySQL的存储引擎 查询数据库支持的存储引擎 执行: show engines: 多存储引擎是mysql有别于其他数据库的一大特性,存储引擎是针对表的,MySQL 5.5之后,默认的存储引擎由MyISAM变为InnoDB. InnoDB 引擎: 支持AUTO_INCREMENT(自增列),支持外键(FOREIGN KEY),创建的表的表结构存储在.frm文件中,优势在于提供了良好的事务处理.崩溃修复能力和并发控制.缺点是读…
前言 NIO框架的流行,使得开发大并发.高性能的互联网服务端成为可能.这其中最流行的无非就是MINA和Netty了,MINA目前的主要版本是MINA2.而Netty的主要版本是Netty3和Netty4(Netty5已经被取消开发了:详见此文). 本文将演示的是一个基于MINA2的UDP服务端和一个标准UDP客户端(Java实现)双向通信的完整例子. 实际上,MINA2的官方代码里有完整的UDP通信Demo代码,但Demo里客户端是需要依赖MINA2的客户端库的,而如果简单地去掉MINA2的li…
Swift语法基础入门二(数组, 字典, 字符串) 数组(有序数据的集) *格式 : [] / Int / Array() let 不可变数组 var 可变数组 注意: 不需要改变集合的时候创建不可变集合是很好的实践.如此 Swift 编译器可以优化我们创建的集合. // 声明数组 let arr1: Array<Int> // 推荐 let arr2: [Int] arr2 = [10, 20] // 先定义再初始化 //arr2 = [30, 40] var arr3: [Double]…