- 博客(54)
- 资源 (5)
- 收藏
- 关注
原创 如何用代码画出一幅好看的画
随着计算机技术的逐步发展,借助计算机强大的能力进行绘画操作,已经变得非常容易。绘画作品的水平也是越来越高,下面就来看看用编程语言绘画,能搞出什么有意思的东西,相比人类的创作又有哪些值得我们思考的地方。more其实用代码直接绘制图形,还有很多其他方案。比如大名鼎鼎的 MATLAB ,可以创作出非常精良的数学几何图形。但是比较一下上面的这几种方案,可以说 AI 作画的水平,一下子提升了好几个层次。创作需要的输入越来越明确,越来越简答,越发的人性化。但是输出的内容,却越发的开始接近甚至超越了人类的水平。...
2022-08-28 22:08:50 26210 5
原创 RxJava 是如何实现线程切换的(上)
前言通过前一篇的从观察者模式出发,聊聊RxJava,我们大致理解了RxJava的实现原理,在RxJava中可以非常方便的实现不同线程间的切换。subscribeOn 用于指定上游线程,observeOn 用于指定下游线程,多次用 subscribeOn 指定上游线程只有第一次有效,多次用 observeOn 指定下次线程,每次都有效;简直太方便了,比直接使用Handler省了不少力气,同时也不
2018-01-23 23:39:54 745
原创 从观察者模式出发,聊聊RxJava
前言RxJava 是什么观察者模式RxJava2 的观察者模式实现四个重要的角色具体的观察者是如何实例化的如何实现订阅发送事件和接收事件RxJava 中对常规的观察者模式做了怎样调整带来了什么好处前言RxJava 是什么 RxJava – Reactive Extensions for the JVM – a library for composin
2018-01-07 22:08:38 575
原创 代理模式
介绍代理模式也称为委托模式,是一种结构性设计模式。说到代理,可能大部分人都会有一种陌生又熟悉的感觉,日常生活中好像都能遇到,比如代理上网,招商代理,商务代理等;但又说不出个具体的一二三来;代理这个事情如果我们换个角度,从委托者的角色出发,我们找代理上网,是因为我们在访问某些网站时存在困难,需要有个角色来间接的帮我们实现这个功能;我们找商务代理,可能是因为许多事我们不在行或者其他原因,需要找
2018-01-04 23:42:21 380
原创 Android 插件化和热修复知识梳理
概述在Android开发中,插件化和热修复的话题越来越多的被大家提及,同时随着技术的迭代,各种框架的发展更新,插件化和热修复的框架似乎已经日趋成熟,许多开发者也把这两项技术运用到实际开发协作和正式的产品当中。因此,我们势必需要了解一下这两门技术。插件化和热修复首先需要明确的一点,插件化和热修复不是同一个概念,虽然站在技术实现的角度来说,他们都是从系统加载器的角度出发,无论是采用hook方式,亦或是代
2017-11-28 23:20:12 940
原创 数据结构-平衡二叉树
定义平衡二叉树,是对二叉搜索树的一种优化。向二叉搜索树中插入元素时,不同的插入次序,将构造出不同结构的树。通俗来讲,就是会导致树的深度和平均查找长度(ASL averge search length)不同;以下图为例。明显可以看出,中间(b)这种结构是比较好的。整个二叉搜索树左右两边显得比较平均,不像最后一种完全成了一颗右斜树,或者说是单向链表,同时也可以看到其ASL=3.0 是这三种结构中最小的。
2017-10-31 23:35:00 537
原创 数据结构-二叉搜索树的实现
定义二叉搜索树(Binary Search Tree,BST),也称为二叉排序树或二叉查找树。相较于普通的二叉树,非空的二叉搜索树有如下性质:非空左子树的所有键值小于其根结点的键值;非空右子树的所有键值大于其根结点的键值;左右子树均为二叉搜索树;树中没有键值相等的结点。
2017-10-27 23:55:56 505
原创 栈和队列的相互实现
前言栈和队列作为两种典型的线性表,有着非常鲜明甚至可以说是相互对立的特点;栈先进后出(后进先出),队列先进先出(后进后出)。因此,对相同的输入,两者会产生恰好截然相反的输出。例如,对于给定的序列”ABCDE”,如果按照字母顺序将这个5个元素依次入栈,然后再依次出栈,那么得到的输出将是”EDCBA”,而如果将5个元素意思压入队列,然后依次弹出,那么得到的输出将是”ABCDE”。正是因为这种截然相对的输
2017-10-22 22:45:20 848
原创 数据结构-栈&队列&Deque实现比较
对于栈和队列这两种特殊的数据结构,由于获取(查找)元素的位置已经被限定,因此采用顺序存储结构并没有非常大的优势,反而是在添加元素由于数组容量的问题还会带来额外的消耗;因此,在无法预先知道数据容量的情况下,使用链式结构实现栈和队列应该是更好的选择
2017-10-22 22:35:33 695
原创 Android MVP 十分钟入门!
前言在日常开发APP 的过程中,随着业务的扩展,规模的变化。我们的代码规模也会逐渐变得庞大,每一个类里的代码也会逐渐增多。尤其是Activity和Fragment ,由于Context 的存在,基本上所有对视图的操作我们只能在Activity和Fragment中完成;即便是对某些逻辑进行封装,Activity和Fragment 依旧会显得过于臃肿。因此,我们需要换一种思路去写代码,这个时候MVP模式
2017-01-25 09:03:43 618
原创 关于AsyncTask的一次深度解析
前言任何一个Android 开发者对AsnycTask 都应该不陌生;使用AsyncTask可以很方便的异步处理耗时操作;AsyncTask内部对Handler和Thread进行了封装,简化了Handler的使用方式,使用起来非常方便。
2017-01-22 20:29:19 1439
原创 终于明白了Handler的运行机制
前言Handler是一个Android SDK 提供给开发者方便进行异步消息处理的类。我们都知道在UI线程中不能进行耗时操作,例如数据读写、网络请求。Android 4.0开始,在主线程中进行网络请求甚至会抛出Android.os.NetworkOnMainThreadException。这个时候,我们就会开始依赖Handler。我们在子线程进行耗时操作后,将请求结果通过Handler的sendMe
2017-01-17 14:49:32 637
原创 Android 动画实战-仿微博雷达功能
前言在应用中使用动画,可以给用户带来良好的交互体验。通过之前对Android动画的分类总结,尝试了使用属性动画实现支付宝支付效果及购物车添加动画的效果,今天在这里模仿一下微博雷达页面效果。对Android动画不太熟悉或遗忘的知识,可以通过下面两篇文章了解。Android 动画总结,Android 动画实战此次模仿新浪微博雷达页的功能,虽然只有一个Activity,但使用到了很多知识。包括 - 属性
2017-01-05 17:19:47 805
原创 我们真的需要使用RxJava+Retrofit吗?
可以说RxJava+Retrofit是整个2016年Android 开发圈内最受关注的的组合。各大Android论坛上有大量以RxJava+Retrofit+xxx 为标题的文章,此类文章也备受大家的关注。这个组合仿佛已经成为了Android开发的必备组件,项目里没使用这个组合好像自己都out了似的。
2016-12-04 16:35:26 10006 2
原创 Android 动画实战
前言通过之前的《Android 动画总结》,对常用的Android动画有了一个整体认识。但是,之前的内容都是概念性的,所列的demo也没有实际意义。这里就通过两个实例了解一下如何在 实际开发中运用Android 动画来实现一些良好的用户体验。
2016-11-02 23:13:52 780
原创 Android 动画总结
。Android 动画分类总的来说,Android动画可以分为两类,最初的传统动画和Android3.0 之后出现的属性动画; 传统动画又包括 帧动画(Frame Animation)和补间动画(Tweened Animation)。
2016-10-19 22:54:16 978 3
原创 仿知乎首页学习CoordinateLayout
前言最近一段时间经常上知乎APP看各种神回复,发现其内部的滑动动画挺有意思,就研究了一下。并使用CoordinateLayout模仿了一下。。
2016-09-24 23:02:30 2802
原创 理解Android中的注解与反射
前言最近一段时间在研究EventBus和Retrofit 的过程中,都遇到了注解这个概念。由于在学习Java的时候对这方面没有深入了解过,所以看起相关的代码来,总会有点不知其所以然,这里就注解和反射的使用做一下总结。
2016-09-02 23:46:58 2691
原创 RxJava 之 Android使用初体验
通过之前对RxJava的了解,我们已经掌握了RxJava的一些基础使用方法,下面我们结合一个简单的Demo,看看如何在Android 开发中使用RxJava。
2016-08-07 23:33:05 736 4
原创 RxJava 之 响应式编程
响应式编程在说响应式编程的概念之前,我们先从这篇文章《用工厂流水线的方式来理解 RxJava 的概念》理解一下RxJava的意义。这里面说到的流水线的例子很确切,对于RxJava的响应式编程的思想是一个很好地类比。
2016-08-04 23:12:23 714
原创 RxJava 之 操作符
什么是RxJava 操作符?可以说,操作符是RxJava 最强大的武器 操作符一个重要的理念就是,使数据始终处于流上。 RxJava的操作符是干什么用的呢?简单理解,就是用于进行转换、结合、过滤和数学运算等操作的方法。看看之前的Demo看看我们是如何输出Hello
2016-07-28 22:02:54 803
原创 EventBus 3.0 深入了解
EventBus is an open-source library for Android using the publisher/subscriber pattern for loose coupling
2016-07-25 21:46:42 2463
原创 EventBus 3.0 相见恨晚
为什么要用EventBus?它是干什么用的?EventBus是什么EventBus是一个Android端优化的publish/subscribe消息总线,简化了应用程序内各组件间、组件与后台线程间的通信。
2016-07-24 23:46:22 727
原创 观察者模式
观察者模式中,**抽象观察者角色**以接口的形式存在,注定了所有的**具体观察者角色**实现更新(如此处的update)时,方法是唯一的,只有update。 而设置监听器机制中,为主题(事件源)设置不同的观察者(监听器)
2016-07-23 22:55:24 1439
原创 Android 实战开发总结(支付篇)
支付宝和微信支付,已经成为了现在购物类APP上最常见的两种支付方式。这里就总结一下实际开发中如何快速又高效在Android开发中集成这两种支付方式。
2016-06-21 22:30:02 1523
原创 Android 实战开发总结(widget篇)
在日常开发中,常常因为不同项目需求的共性,同时也是考虑到用户使用方式的共性,会有许多复用性极高的代码实现,这里特地总结一下。
2016-06-21 08:38:05 684
原创 Activity 切换运行模式后的意外情况
学习过Android开发的同学一定非常熟悉Activity,这也是四大组件中平时接触最多的东西。关于Activity稍微深入一点就是其不同的启动模式。即standard、singleTop、singleTask 和singleInstance。可以在AndroidManifest.xml 中通过给 标签指定android:launchMode 属性来选择启动模式。现在大部分教程及书籍中都会都其有细致
2016-05-18 08:04:28 670
原创 Android夜间模式初探
关于夜间模式的实现,有很多种方法。这篇日志学习一下最简单的实现方式,通过setTheme(int resid)方法实现主题切换来实现夜间模式,这也是Android官方推荐的方法。整体思路与效果通过Android SDK提供的setTheme方法,可以切换Activity的不同的主题
2016-04-28 23:22:54 751
原创 你真的了解android:layout_weight吗?
日常开发中,在LinearLayout中使用layout_weight可以很好的应对那些内容会动态变化的布局结构。比如表单填写,最常见的就是注册登录页面布局内容的实现
2016-04-12 22:39:19 752
原创 关于Android滑动冲突的解决方法(二)
之前的一遍学习笔记主要就Android滑动冲突中,在不同方向的滑动所造成冲突进行了了解,这种冲突很容易理解,当然也很容易解决。今天,就同方向的滑动所造成的冲突进行一下了解,这里就先以垂直方向的滑动冲突为背景,这也是日常开发中最常见的一种情况。
2016-04-07 23:24:38 5641
原创 关于Android滑动冲突的解决方法(一)
滑动冲突可以说是日常开发中比较常见的一类问题,也是比较让人头疼的一类问题,尤其是在使用第三方框架的时候,两个原本完美的控件,组合在一起之后,忽然发现整个世界都不好了。关于滑动冲突滑动冲突分类滑动冲突,总的来说就是两类。同方向滑动冲突 比如ScrollView嵌套ListView,或者是ScrollView嵌套自己不同方向滑动冲突 比如ScrollView嵌套ViewPager,或者是Vi
2016-03-30 23:11:24 3045
原创 自定义Android图片轮播控件
通过在总结网络上各位大神的思路,这里本着学习的态度自定义一个可以无限循环轮播,并且支持手势滑动的轮播图控件
2016-03-29 23:07:57 2595 1
原创 Android 雷达扫描动画效果实现
在新浪微博上有一个雷达功能,感觉类似于微信附近的人。只是多了一个类似于雷达扫描效果的动画,某些知名安全软件也有这样的雷达效果,因此在这里学习一下。
2016-03-24 23:09:49 3941 2
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人