- 博客(3)
- 资源 (2)
- 收藏
- 关注
原创 数据结构?从HashMap的源码分析开始!
Hash(哈希)哈希即散列,散列表是为了解决高速存取而设计的,是一种典型的通过空间去换取时间的做法;为啥叫散列?其实我们可以把这个数据接口理解为一个线性的表,但是这个表当中的元素并不是紧密排列的,而是分散的,元素与元素之间可能存在间隙,所以这里就会造成空间上的浪费;散列表是依据Key-Value键值对去实现存取的,把Key通过一个映射函数映射到表中的一个位置,而这个映射函数就叫做散列函数对...
2018-07-17 17:52:50 202
原创 TextView实现自定义换行以及缩进文字的格式化对齐
自定义换行我们通常在自定义控件的时候会遇到不想用系统默认的文字换行,而需要根据自己的需求来实现文字的换行,原理如下:使用Paint的measureText方法来测量文字的长度假设设定单行的最大长度为maxWidth,那么就通过measureText来测量每一个字的长度,然后不断的累加再去对比maxWidth,如果比maxWidth大,那就追加一个换行符号,然后再把累加长度归零,继续开始...
2018-07-02 21:36:58 2702
原创 自定义实现垂直滚动的TextView
需求当TextView限制最大行数的时候,文本内容超过最大行数可自动实现文本内容向上滚动随着TextView的文本内容的改变,可自动计算换行并实时的向上滚动文字向上滚动后可向下滚动回到正确的水平位置自定义方法自定义一个View,继承自View,定重写里面的onDraw方法文字的滚动是用Canvas对象的drawText方法去实现的public void drawT...
2018-07-02 20:20:58 567 1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人