自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 收藏
  • 关注

原创 kotlin 仿微信 底部导航栏 动态切换效果

文章目录效果实现思路具体实现结语效果可以看到,当页面切换时 下方图标以及文字跟着动态改变实现思路思路还是很简单的关键步骤如下页面的搭建采用Activity+viewPager+fragment 这种写法其实是有很多隐藏坑,如果有兴趣可以在看看我的另一篇小文章ViewPager+Fragment+Activit构建页面值得注意的点动画效果图标动画效果:两张相同大小不同颜色图标,...

2019-06-21 16:57:03 1206

原创 ViewPager+Fragment+Activit构建页面值得注意的点

文章目录FragmentPagerAdapter和FragmentStatepagerAdapterActivity管理Fragment实例的正确方法Fragment与Activity之间的通信其他FragmentPagerAdapter和FragmentStatepagerAdapter区别:FragmentPagerAdapter不用到用时调onDestoryView()和onCr...

2019-06-17 16:05:10 326

原创 ViewPager无限循环实现画廊式banner

先看一下效果两边显示上一个和下一个item部分布局,可以自动滚动实现:布局主要属性:android:clipChildren="false" //允许子布局超出父布局显示xml代码:<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.an...

2019-06-01 17:19:23 35570

原创 TCP / IP 协议族和HTTS

TCP / IP 协议族概念一系列协议所组成一个网络分层模型为什么要分层?因为网络的不稳定性如果我们传一个50M的数据,如果失败,每次都将需要重新传50M,但我们把它分成多块,失败时候只需重新传输失败的那一块。具体分层:Application Layer 应⽤层:HTTP、FTP、DNSTransport Layer 传输层:TCP、UDPInternet Laye...

2018-12-28 18:26:07 627

原创 编码、加密以及Hash

现代密码学可以加密任何⼆进制数据 非对称加密的出现使得密码学有了更广泛的用途:数字签名对称加密通信双方使用同一个密钥,使用加密算法配合上密钥来加密,解密时使用加密过程的完全逆过程配合密钥来进行解密。简化模型有替换式加密的模型:对文字进行规则化替换来加密,对密文进行逆向的规则化替换来解密。经典算法DES(56 位密钥,密钥太短而逐渐被弃用)、AES(128 位、192 位、...

2018-12-24 18:00:38 908

原创 HTTP 的概念、原理、工作机制、数据格式

HTTP 是什么?官方点的定义是:一种网络传输协议,位于 TCP / IP 协议族的最顶层——应用层。可能这么还是理解不了,那我们来通俗一点看。两种最直观的印象浏览器输入地址栏,打开网页 Android中发送网络请求返回对应的内容全称 Hypertext Transfer Protocol,超文本传输协议超文本首先我们得知道什么是超文本,超文本就是 在电脑中显示的、含有可以...

2018-12-20 18:52:23 590

原创 数据结构——优先队列和堆

优先队列:优先队列也是一个队列,他和普通队列的区别是:普通队列是先进先出,后进先出的;优先队列是出队顺序和入队顺序无关,和优先级相关。(如:医院看病时,病情最严重的那个需要先看病) 实现优先队列同样底层也可以选择多种数据结构,选择 普通的线性结构实现:出队O(1),入队O(n);选择 顺序线性结构:入队O(n),出队O(1);选择 堆实现:入队O(logn),出队O(logn)...

2018-12-20 15:09:57 498

原创 数据结构——集合和映射

集合Set:这个感觉什么特别的。集合底层也同样可以用不同的数据结构实现(如二分搜索树,链表)java中的TreeSet底层使用的是红黑树。一般的集合是不能添加重复元素的,根据这一特性很适合用于统计。映射Map:· 存储(键,值)数据对的数据结构(Key,Value)· 根据Key,能快速寻找value· 底层使用链表或树实现如下图:将元素与另一个对应c...

2018-12-17 18:53:37 1213

原创 数据结构——二分搜索树

首先来看一下二叉树: 和l链表一样,动态数据结构class Node{      E e;      Node Left;      Node right;}特点: · 二叉树具有唯一的根节点· 二叉树每个节点最多有两个孩子(左孩子,右孩子)· 没有任何孩子的节点叫叶子节点· 每个二叉树最多一个父亲节点· 同链表一样具有天然递归性注意:二叉树不...

2018-12-17 18:10:43 120

原创 数据结构——链表

特点:· 一种线性数据结构· 最简单的动态数据结构,不需要处理固定容量的问题· 天然具有递归性· 数据存储在“节点”中· 丧失了随机访问的能力使用:因为丧失了随机访问的能力所以适用于索引无语义的情况实现:增加元素:链表头添加元素:链表中有一个变量head记录链表的头,所以想链表头添加元素十分方便。步骤为创建一个新节点让它的next指向现在的头结点,然后将...

2018-12-14 18:18:52 189

原创 数据机构— 栈和队列

栈 Stack栈的特性:· 一种线性结构· 相比数组,栈对应的操作是数组的一个子集· 只能从一段添加和取出元素(这一端称为栈顶)· 栈是一种后进先出的数据结构——Last In First Out  (LIFO)             如图 有元素1 2 3 4  进栈顺序为 1 2 3 4,最后进栈的元素4最先出栈。栈的应用: Undo操作(撤销):例如写代...

2018-12-13 18:42:57 136

原创 数据结构——数组及简介时间复杂度

数组基础特性:数据码成一排进行存放,每一个数据对应一个索引,支持随机访问,初始化必须指定大小使用:Java中初始化:int[] arr = new int[10]  或 int[] arr = new int[]{ 1,2,3 }其他:数组索引可以有意义也可没有意义,但最好应用于索引有意义的情况因为其支持随机访问的特性,根据索引查找对应数据所用的时间复杂度为O(1)动态数组具体...

2018-12-05 18:19:41 10649 2

原创 android百度地图InfoWindow重叠问题解决

用的最新的百度地图,在给marker添加view作为infowindow的时候出现了两个infowindow相互重叠查看源码infowindow有两个构造方法,3 个参数和4个参数的三个参数的直接传的是View将View通过BitmapDescriptorFactory.fromView(info)转换,改用4个参数的构造方法就未出现重叠缺点:只能设置整个infowindow的点...

2018-10-16 14:48:43 1858

原创 解决安卓倒计时 CountDownTimer类 内存泄漏

写如下:public class CountDownTimerUtils extends CountDownTimer { WeakReference&lt;TextView&gt; mTextView; //显示倒计时的文字 用弱引用 防止内存泄漏 public CountDownTimerUtils(TextView textView, long mill...

2018-07-28 19:55:44 4582

原创 对比 Vector、ArrayList、LinkedList 有何区别

Vector、ArrayList、LinkedList均为线型的数据结构,但是从实现方式与应用场景中又存在差别。1 底层实现方式ArrayList内部用数组来实现;LinkedList内部采用双向链表实现;Vector内部用数组实现。2 读写机制ArrayList在执行插入元素是超过当前数组预定义的最大值时,数组需要扩容,扩容过程需要调用底层System.arraycopy()方法进行大量的数组复...

2018-05-22 11:03:27 169

原创 Java 的字符串,String、StringBuffer、StringBuilder 有什么区别

String 是 Java 语言非常基础和重要的类,提供了构造和管理字符串的各种基本逻辑。它是典型的 Immutable 类,被声明成为 final class,所有属性也都是 final 的。也由于它的不可变性,类似拼接、裁剪字符串等动作,都会产生新的 String 对象。由于字符串操作的普遍性,所以相关操作的效率往往对应用性能有明显影响。StringBuffer 是为解决上面提到拼接产生太...

2018-05-17 11:26:54 207

原创 强引用、软引用、弱引用、幻象引用有什么区别、具体使用场景

1. 强引用:项目中到处都是。2. 软引用:图片缓存框架中,“内存缓存”中的图片是以这种引用来保存,使得JVM在发生OOM之前,可以回收这部分缓存3. 虚引用:在静态内部类中,经常会使用虚引用。例如,一个类发送网络请求,承担callback的静态内部类,则常以虚引用的方式来保存外部类(宿主类)的引用,当外部类需要被JVM回收时,不会因为网络请求没有及时回来,导致外部类不能被回收,引起内存泄漏 ...

2018-05-15 10:09:08 1457

原创 Android判断软键盘是否显示

如果显示则隐藏 否则弹出弹窗if (isSoftShowing()) { final View v = (this).getWindow().peekDecorView(); if (v != null &amp;&amp; v.getWindowToken() != null) { InputMethodManager imm = (InputMethod...

2018-05-14 17:18:25 6819 1

原创 对比 Exception 和 Error,运行时异常与一般异常有什么区别

Exception 和 Error 都是继承了 Throwable 类,在 Java 中只有 Throwable 类型的实例才可以被抛出(throw)或者捕获(catch),它是异常处理机制的基本组成类型。Exception 和 Error 体现了 Java 平台设计者对不同异常情况的分类。Exception 是程序正常运行中,可以预料的意外情况,可能并且应该被捕获,进行相应处理。Erro...

2018-05-14 15:26:37 1972

原创 viewpager的fragmentpagerAdapter不能更新fragment的问题

 在实际项目中遇到了一个需求,就是点击按钮要改变viewpager中的fragment,而经过尝试 -0- 发现FragmentPagerAdapter中的notifydatasetchanged()并不能起到什么作用...通过对fragmentpageadapter的源码查看你会在instantiateItem方法里面发现这一段 // Do we already have thi...

2018-05-08 16:03:02 236

原创 PopupWindow点击显示按钮无法隐藏,7.0锚点位置错乱现象,和软键盘冲突

 7.0锚点位置错乱现象重写PopupWindow  showAsDropDown方法;public class CustomerPopupWindow extends PopupWindow { private Context mContext; private Drawable mBackgroundDrawable; public CustomerPo...

2018-05-03 17:52:11 285

原创 Reccleview与NestedScrollView嵌套产生的问题

recyclerView和NestedScrollView滑动冲突解决办法 1recyclerView.setNestedScrollingEnabled(false);setNestedScrollingEnabled(false); NestedScrollView中子布局抢占焦点,导致内容不从头显示 解决:子布局添加属性 1android:de...

2018-05-01 15:36:28 121

原创 Android Adapter总结

Adapter相当于一个数据源,可以给AdapterView提供数据,并根据数据创建对应的UI,可以通过调用AdapterView的setAdapter方法使得AdapterView将Adapter作为数据源。dapter 计模式中的一种,就是适配器的意思。BaseAdapter继承它需要实现较多的方法,所以也就具有较高的灵活性,是一个抽象类。ArrayAdapter支持泛型操作,最为简单,只能展...

2018-05-01 15:11:03 104

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除