- 博客(27)
- 收藏
- 关注
原创 Android 实现TextView的部分文字和网络链接及电话号码点击监听
前言最近在写项目的时候遇到了一个这样的需求,要像qq一样,点击评论的者的名字要跳转评论者的用户信息界面,并且点击评论信息中的web链接要跳转到WebActivity,同时如果是其他数字的话要像qq一样点击并显示底部Dialog提示是播打电话还是复制号码。效果先给大家看看效果下面的评论由一个TextView显示,其实显示为淡蓝的都是可以点击的区域。思路因为没做过肯定是先百度了解一下,大...
2018-10-30 16:52:26 1942 2
原创 Android内存泄漏原因及解决办法
前言面试中最常问的就是:“你了解Android内存泄漏和Android内存溢出的原因吗,请简述一下” ,然后大多数的人都能说出原因及其例子和解决办法,但是实际项目中稍微不注意还是会导致内存泄漏,今天就来梳理一下那些是常见的内存泄漏写法和解决方法。原因内存泄漏的原理很多人都明白,但是为了加强大家的防止内存泄漏的意识,我再来说一遍。说到内存泄漏的原理就必须要讲一下Java的GC的。Java之所以...
2018-10-30 16:10:36 7718 1
原创 Android如何复用同一个RecyclerViewAdapter
前言对于一个Android应用来说,列表是经常需要使用的一个控件,而实现列表对于Android系统来说一般就是使用ListView和RecycleView这两个,由于RecycleView更为灵活高效,所以大部分Android开发者更倾向于RecycleView。大家都知道如果要使用RecycleView必须要有一个与之相伴的Adapter。但是大部分简单的列表的Adapter功能都一致,那可不...
2018-10-30 16:09:34 1766 4
原创 LeetCode 刷题记录(19、20)—Java语言
19. 删除链表的倒数第N个节点题目给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5. 说明:给定的 n 保证是有效的。进阶:你能尝试使用一趟扫描实现吗?思路定义两个指针,第...
2018-05-25 22:06:20 612
原创 LeetCode 刷题记录(16、17、18)—Java语言
16. 最接近的三数之和题目给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。例如,给定数组 nums = [-1,2,1,-4], 和 target = 1.与 target 最接近的三个数的和为 2. (-1 + 2 + 1 = 2).思路...
2018-05-25 21:54:58 685
原创 LeetCode 刷题记录(15)—Java语言
15. 三数之和题目给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。例如, 给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为: [ [-1, 0, 1], [-1, -1, ...
2018-05-11 09:33:02 687
原创 LeetCode 刷题记录(14)—Java语言
14. 最长公共前缀题目编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。示例 1:输入: [“flower”,”flow”,”flight”] 输出: “fl” 示例 2:输入: [“dog”,”racecar”,”car”] 输出: “” 解释: 输入不存在公共前缀。思路通过寻找长度最小的字符串从其前缀开始依次增长并与...
2018-05-10 11:30:20 474
原创 LeetCode 刷题记录(11,12,13)—Java语言
11. 盛最多水的容器题目给定 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。画 n 条垂直线,使得垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。注意:你不能倾斜容器,n 至少是2。思路按照题目的要求即找出任意两个垂直线与X轴组成的容器能装最多的水。即寻...
2018-05-09 12:02:19 337
原创 LeetCode 刷题记录(8,9,10)—Java语言
8. 字符串转整数 (atoi)题目实现 atoi,将字符串转为整数。在找到第一个非空字符之前,需要移除掉字符串中的空格字符。如果第一个非空字符是正号或负号,选取该符号,并将其与后面尽可能多的连续的数字组合起来,这部分字符即为整数的值。如果第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。字符串可以在形成整数的字符后面包括多余的字符,这些字符可以被忽略,它...
2018-05-08 11:38:45 1183
原创 LeetCode 刷题记录(5,6,7)—Java语言
5. 最长回文子串给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为1000。示例 1:输入: “babad” 输出: “bab” 注意: “aba”也是一个有效答案。 示例 2:输入: “cbbd” 输出: “bb”思路这道题最直接的解法就是中心扩散法,即从每个字符或者每个两个字符间开始判断左右两边是否相等,不过时间复杂度太高,最适合的还...
2018-05-07 15:22:29 470
原创 LeetCode 刷题记录(4)—Java语言
前言LeetCode刷题第二天,打卡 滴滴滴 有点事,只写了一题。4. 两个排序数组的中位数给定两个大小为 m 和 n 的有序数组 nums1 和 nums2 。请找出这两个有序数组的中位数。要求算法的时间复杂度为 O(log (m+n)) 。示例 1:nums1 = [1, 3] nums2 = [2]中位数是 2.0 示例 2:nums1 = [1, 2...
2018-05-05 21:09:32 224
原创 LeetCode 刷题记录(1,2,3)—Java语言
前言相信对于快要面临面试的小伙伴来说,算法是必考的一关,本人大三狗一只,平时也没有针对算法做过过多的研究和学习。在面试的时候深感吃力,现在定下Flag,每天在LeetCode上刷几道题,然后在博客上分享思路。欢迎大佬点评,给予更好的结题思路。1. 两数之和给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。...
2018-05-05 19:47:36 223
原创 Android 头像定位图标
前言相信很多小伙伴都使用过高德地图或者百度地图,其中肯定或多或少的会有通过头像定位图标显示用户位置的需求。比如类似于微信的位置共享或者到位App的用户位置显示。都是采取了通过头像合成头像定位图标的方式。其中可以在服务器上合成直接返回也可以在客户端上合成,由于这是针对Android的文章,自然是需要通过Android代码来实现的。话不多少,上效果。效果这是我之前写过的一个应用,里...
2018-05-04 09:12:05 2186 2
原创 Android 使用高德地图加载定位点
前言最近做了一个关于公交站点显示的应用,相信很多朋友都遇到过这种从服务器上获取多个定位点加载到地图上显示的需求,今天我就来分享一下我实现这个需求的方式(针对于那些对高德api不熟悉的伙伴,大佬可忽略)简介高德开发平台为开发者提供了一整套关于地图操作的SDK和文档。在使用之前需要去申请账号、创建应用并查看集成方式。具体操作请移步至官网 在查看文档之后设置好自己的key,然后按照文档要...
2018-05-03 18:49:07 2066
原创 Android 手撸一个圆环信息统计控件
目录目录前言设计效果编写使用源码总结前言对于很多应用来说都可能需要做一些数据的统计与展示,通常使用的也就是圆盘统计图和直线统计图以及折线统计图,由于android原生系统中不提供这类的控件,通常需要自己手撸一个或者使用第三方框架,有很多第三方框架做的很好很炫酷,功能也很全面,但是如果让你自己手写一个改怎么实现呢?今天我来展示一下我的小思路吧。设计...
2018-05-03 17:25:43 2212 4
原创 Android 解决高德地图签名后无法定位的问题
前一段时间,我做了一个关于地图的应用,调试的时候一切正常,签名后就无法正常定位。刚开始以为是6.0动态权限问题,再检查代码后发现没有问题。百度上关于这种问题的也没什么讲,就去高德平台上看了,最后大致明白了。是因为SHA1值改变的原因,应用的调试版本和签名后的版本SHA1值是不同的,而在平台上只用了调试版本的SHA1,所以导致签名的应用版本无法正常使用。那怎么修改呢?首先我们看一下高德开发平台上的
2017-08-30 10:46:56 2410
原创 Android 通过bmob十分钟实现即时通讯
我的上一篇博客简要的介绍了一下我对即时通讯的一些尝试,后面还介绍了通过bmob实现即时通讯的方式,上一篇主要是对我的一些经验的分享,所以我只提取了很简要的部分讲解,考虑到一些读者可能难以理解,所以为帮助读者理解,这篇博客将手把手教学。 总的步骤如下:注册并创建应用获取应用的application id导入即时通讯sdk初始化sdk连接服务器发送消息接收消息先给大家看看效果: 注册
2017-07-26 10:26:54 6423 23
原创 Android 即时通讯
在刚开始学习Android的时候,我特别想了解类似于QQ和微信这样的聊天软件是怎么实现的,相信有很多小伙伴跟我一样很想去了解并自己实现一个聊天工具。那么下面我就来给大家介绍一下我是怎么实现即时通讯的。首先我们要明白这篇文章是为了解决哪些问题,提出问题如下: 1. 什么是即时通讯? 2. 怎样实现即时通讯? 3. 即时通讯有什么作用?什么是即时通讯?在学习即时通讯之前,我们必须明白即时通
2017-07-25 15:07:47 11439 3
原创 Android 通过二进制运算原理优化内存
Android内存优化为什么要进行内存优化?从Android手机开始发布,卡顿一直是这个系统的软肋,这也是用户最反感的地方之一。2GB运行内存的Android系统可能只相当于1GB IOS的系统内存。这其中有开发者滥用权限和后台的原因也有设计者本身设计所存在的漏洞,现在很多开发者提倡遵守《android绿色应用公约》。不滥用内存、权限及后台。但是这还不够,因为每个Android应用能用到的最大运行内
2017-05-22 20:16:20 1083
原创 Android Retrofit2.0+RxJava简单示例
Android Retrofit2.0+RxJava简单示例Retrofit简介RxJava简介Retrofit+RxJava简单示例如何简单GET一个api数据目录Android Retrofit20RxJava简单示例目录Retrofit简介RxJava简介RetrofitRxJava简单示例如何简单GET一个api数据寻找api地址分析JSON格式Retrofit的封装
2017-05-17 15:32:51 714 1
原创 Android 小试Retrofit
身为一个Android开发者要是不知道大名鼎鼎的Retrofit那就显得out了,前段时间也是简单的了解了一下这个强大的开源库,我只能说它真的是很方便快捷的,配合上RxJava,平时复杂JSON解析简化成了一个Bean类直接请求数据,功能性和代码的整洁性上都有了很大的提升,加上其安全性的Http请求,很适合个人开发者独立开发的app。最近我也是结合了一下RxJava+Retrofit做了一个小De
2017-05-12 22:14:18 492
原创 Android mvp兼职平台小项目《SmallExcellent》
一个使用了mvp+bmob+高德地图sdk+litePal的兼职工作平台项目 起初对mvp不是很了解以至于,刚开始写的时候比较迷糊,但是 熟能生巧,慢慢的写起来,对mvp的理解越来越深刻,到现在也是 慢慢明白了其逻辑与代码分离的设计思路,后台处理主要是使用Bmob,Bmob是个人开发者后台的得力 助手,项目的数据主要存储在此。项目地图定位等模块都是借用了 高德开发平台所提供的api。顺便还使用了郭霖第一行代码第二版中 提到的litePal,将此开源,大家共同学习,勿用做其他目的。
2017-05-11 21:24:09 543 3
原创 仿QQ个人信息详情界面中背景图的下拉扩展放大功能
一般一些项目中都少不了一些头部背景图,但是如果背景图静态的现实并不能呈现出与用户操作的交互感,所以要想办法让背景图动起来,qq的一些交互感我很喜欢,比如他的个人详情界面的背景图就是可以下拉扩展,并在扩展到一定程度中可以放大图片。其设计原理就是先隐藏头部和底部的一些视图,然后在下拉过程中慢慢把隐藏的部分显示出来,到完整显示后就可以放大图片,这样设计的好处就是:1、节省一些屏幕空间,不影响正常的操作内
2017-05-03 15:57:45 3464 5
原创 Android入门级自定义View-拼图游戏
学习Android最重要的不是调用别人写的架包,更重要的是培养出自己的思维。一个入门级的自定义View,教你如何捋清思路。
2017-03-16 20:55:24 719
翻译 向上转型和向下转型
向上转型:子类向上转型为父类注意点:转型后父类与子类的同名函数中,子类的函数可以覆盖父类的函数,但子类自己定义的函数将被丢失class A{ public void A1(){ System.out.println("父类方法1"); }public void A2() { System.out.println("父类方法2"); }}class
2016-03-27 21:41:45 603
原创 对Java-Static 关键字的理解
1、在java中通常用new来分配内存创建类,只有类被创建后才能被外界调用。2、static的作用:为了解决一些只为特定区域分配内存或者希望这个方法与类无关的问题。3、static的作用与用法及注意事项:(1).不需要创建对象分配内存也可以调用(2).同一类的对象产生对类中静态变量的引用指向的是同一个静态变量//作用是节省内存(3).public class Test3 {
2016-03-22 20:06:17 310
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人