Material Design真的很好看,动画效果真的很实用。前面也写了一些文章介绍如何编写Material风格的程序,但是很多都是一些新的api,低版本上面没有这些api,我们没办法使用。但是不用气馁,google官方,以及一些大牛,给我们提供了一些程序,让我们在低版本上面可以实现Material风格的程序,这里就给大家介绍一下。
妹子图截屏
more
使用support library
使用support library最新的版本,appcomt21,可以在较低版本上面实现部分风格,在之前的文章我已经说过了,这里在系统的说一下。
应用主题
这部分的话之前的文章说过,链接在这里: http://blog.ismin
继续阅读 »
【什么是堆】
概念:堆是一种特殊的二叉树,具备以下两种性质
1)每个节点的值都大于(或者都小于,称为最小堆)其子节点的值
2)树是完全平衡的,并且最后一层的树叶都在最左边
这样就定义了一个最大堆。如下图用一个数组来表示堆:
继续阅读 »
本来打算写点什么的,突然头脑中一阵风暴,我就静静地在时光的隧道中穿梭了好几年,有过去,也有将来。待我思绪渐渐清晰时,把手放在熟悉的按键上,我竟然有点不知所措。有些东西看来还是不适合分享,那就为了纪念这次的沉思,放上我亲自拍摄的几张落日图吧!
底下还有一幅近景落日图
more
继续阅读 »
介绍
所谓树状数组,就是将线性的数组预处理成树状的结构以降低时间复杂度。先来看一幅经典的图:
其中的a数组为原生数组,c数组为辅助数组,计算方式为: $$c_1=a_1——{(1)}{10}={(1)}_2$$ $$c_2=a_2+c_1——{(2)}{10}={(10)}_2$$ $$\ldots$$ 不难发现,c[k]存储的实际上是从k开始向前数k的二进制表示中右边第一个1所代表的数字个元素的和。这样写的好处便是可以利用位运算轻松计算sum。上代码。
Code
var
n, i: longint;
a, c: array [1..10000] of longint;
//计算x最右边的1所代表的数字。
继续阅读 »
分析:如果把词典中的单词当作顶点,把doublet看作连接两个顶点的边,那么这个问题实际上是在一个无向图中搜索两个顶点间的最短路径,如果有的话。“最短路径”可能使人联想到复杂的Dijkstra或者更复杂的Floyd-Warshall算法,但在本题中,由于图的边没有权值,因此可以简单地使用以s为起点的广度优先搜索来找出到达点t的最短路径,如果有的话。
继续阅读 »
FlameGraph的例图,解释如下:
图中每一个方块代表栈里的一个函数。
Y轴代表调用深度,最上面的是当前正在CPU上执行的函数,下面的都是其祖先。每个函数都是由它下方的函数调用的。
X轴不是按照时间先后排列的,它只代表样本数目。方块越宽,代表该函数出现的次数越多。
在有多个并发线程同时被采样,样本总数可能超过采样所用的时间。
继续阅读 »
OPENGL 渲染
待解决问题:
1:OPENGL ES 的语法
2:OPENGL 2.0 入门
GPUImage 中各图渲染
待解决问题:
1: 视频作为一个Texture 来渲染其中的效果图片
2: AVFoundation + OPENGLES (Searh)!!
继续阅读 »
Activity是android的四大组件之一,我们编写程序时,主要通过Activity来显示我们的UI。我们需要了解他的生命周期,以及 每个周期可以做什么。
一个Activity存在三种状态:
Resumed:
activity显示在屏幕的最前面,并且获取用户焦点。
Paused:
其他activity在当前activity之前,并获得焦点。当前activity还能够部分显示,仍然维护着所有状态,当内存低的时候才会被系统杀死。
Stopped:
当前activity完全不可见。但是仍然存在,其他应用需要内存的时候会被杀死(不一定是低内存的时候)。
more
具体生命周期见图:
启动Activity
执行onC
继续阅读 »
网络层
一个思维导图
基本模块有:
SocketBase 抽象基类, 定义所有会共性的方法, 基本都是Epoll在回调,比如OnRead, OnWrite分别处理epoll的读写事件, ListenSocket也是继承这个基类.
m_fd 保存socket的fd属性
m_readBuffer 和 m_writeBuffer 分别是一个读写的buffer, 类型就是Buffer类
继续阅读 »
数据可视化
一、概述
1. 为什么要进行可视化
人肉眼对图像更敏感
将数据之间的复杂关系通过更清晰的方式展现出来
……
2. 涉及到的领域
数学,统计
交互设计
物理(力场图)
地理(GIS)
心理学
编程
……
继续阅读 »