- 博客(34)
- 资源 (3)
- 收藏
- 关注
原创 React Native 组件生命周期学习总结
React Native 组件生命周期学习总结React Native 中的所有组件存在生命周期,了解其生命周期对于我们掌握一个组件从创建到销毁的整个完整的过程和优化逻辑有很大的帮助。先来一张经典的生命周期图:getDefaultPropsgetDefaultProps 是创建前的准备工作,来设置默认 props 的值,所以严格地来说,这不是组件的生命周期的一部分。需要注意的是如果有从父...
2019-03-17 23:44:49 288
原创 使用观察者模式进行订单管理
使用观察者模式进行订单管理概念:观察者模式是由发送者和观察者构成,发送者在状态改变时,主动通知所有的观察者做相应的刷新。 观察者模式定义了对象之间一对多的依赖关系,以便一个对象状态发生改变时,所有依赖于它的对象都能够得到通知,并自动刷新。/** * author: Alan on 2017/12/14 15:34 * address: xk6321@gmail.com * desc
2018-01-30 22:06:01 1723
原创 AndroidStudio中的NDK开发初探
前段时间由于做项目紧,一直都没时间写博客,现在终于可以补上一篇了,一直想学习一点NDK开发的知识,但是迟迟没有动手,正好有一个NDK相关的项目机会,便查阅了一些资料,遂将学习的一些心得方法记录于此。
2017-08-04 00:18:54 1884 2
原创 关于 Kotlin 的一些小知识的总结
1. Class在 Kotlin 中 Class 的默认修饰符是 final,是不可以被继承和重写的,如果需要进行重写,可以在类名前面加修饰符 open,像下面这样:open class RunClass {}2. 构造函数当我们只需要一个构造函数的时候,可以直接有下面这种方式进行声明:class CustomView(context: Context?, attrs: AttributeSet?,
2017-07-03 15:14:32 498
原创 Activity 工作流框架学习总结
环境的搭建和数据表的了解1. 什么是工作流?工作流(Workflow),就是“业务过程的部分或整体在计算机应用环境下的自动化”,它主要解决的是“使在多个参与者之间按照某种预定义的规则传递文档、信息或任务的过程自动进行,从而实现某个预期的业务目标,或者促使此目标的实现”。 工作流管理系统(Workflow Management System,WfMS)是一个软件系统,它完成工作量的定义
2017-06-26 18:39:11 3215 1
转载 MVP详解 - MVP最佳实践
所谓 MVP(Model-View-Presenter) 模式。是将 APP 的结构分为三层:view - UI显示层view 层主要负责:提供 UI 交互在 presenter 的控制下修改UI。将业务事件交由 presenter 处理。注意:View 层不存储数据,不与 Model 层交互。 presenter - 逻辑处理层presenter 层主要负责:对 UI 的各种业务事件进行
2017-03-20 23:06:19 996
原创 Android 中 Bitmap 和 Drawable
一、基本概念1、Drawable就是一个可画的对象,其可能是一张位图(BitmapDrawable),也可能是一个图形(ShapeDrawable),还有可能是一个图层(LayerDrawable),我们根据画图的需求,创建相应的可画对象 2、Canvas画布,绘图的目的区域,用于绘图 3、Bitmap位图,用于图的处理 4、Matrix矩阵二、Bitmap1、从资源中获取BitmapReso
2017-02-05 10:06:42 337
原创 Deta日期操作工具类
这几个月工作都很忙, 项目很紧, 导致很长一段时间没有继续更新, 再次做下记录, 巩固一下所用到的知识, 话不多说,先分享一个强大的日期操作工具类:import com.aiitec.openapi.utils.LogUtil;import java.text.DateFormat;import java.text.ParseException;import java.text.ParsePo
2017-01-17 10:38:18 720
转载 总结和分析几种判断 RecyclerView 到达底部的方法
上一篇文章我讲到 用事件分发的原理结合 SwipeRefreshLayout 写一个 RecyclerView 的上下拉 ,里面有一个判断 RecyclerView 是否到达底部的方法 isBottom。我的同事用了这个上下拉之后发现有些小 bug,没考虑周全,譬如各个子项高度不统一的时候,然后我找到原因是因为这个判断上下拉的问题。所以,我就去网上查到几种判断 RecyclerView 到达底部的方
2016-12-30 09:10:12 1954
原创 HashMap一键对多值的存与取
Map一键对多值的存与取1. map的一个值对应多个value,根据map的性质,是要覆盖的,只有用它的泛型放,Map<String,List> map1 = new HashMap() if(map1.containsKey(data.getPrpName())){ //判断key是否一样 map1.get(data.getPrpName()).add(map2); }else
2016-11-25 09:26:57 11925
原创 一行代码获取ViewPager中当前显示的Fragment
一句代码获取ViewPager中当前显示的Fragment 我不知道网上的那些答案为什么写的那么复杂, 明明一行代码可以搞定的事情, 写的这么麻烦, 有两种方式可以获取
2016-11-24 20:33:46 2177 1
原创 GestureDetector与ScrollView事件冲突解决方法
在Avtivity中重写dispatchTouchEvent方法 : @Override public boolean dispatchTouchEvent(MotionEvent ev){ //让GestureDetector响应触碰事件 gesture.onTouchEvent(ev); //让Activity响应触碰事件
2016-11-23 15:25:40 2151
原创 Fragment中处理触摸事件
实现 Fragment 触摸事件处理设置触摸事件可以先在主Activity中设置一个接口如下 : private ArrayList<MyOnTouchListener> onTouchListeners = new ArrayList<MyOnTouchListener>( 10); @Override public boolean dispatchT
2016-11-23 15:19:06 2369 1
原创 安卓更新UI的几种方法
安卓更新UI的几种方法:1.利用Looper更新UI界面 如果我们的代码需要随时将处理后的数据交给UI更新,那么我们想到的方法就是另开一个线程更新数据(也必须这么做,如果我们的数据更新运算量较大,就会阻塞UI线程),也就是界面更新和数据更新是在不同线程中(android采用的是UI单线程模型,所以我们也只能在主线程中对UI进行操作),但这会导致另一个问题:如何在两个线程间通信呢?android提供
2016-09-16 15:12:31 1415
原创 Android中的Handler机制
android的消息处理机制 — Looper,Handler,Message 在介绍Handler之前,先来了解一下几个基本的术语:通信的同步:指向客户端发送请求后,必须要在服务端有回应后客户端才继续发送其它的请求,所以这时所有请求将会在服务端得到同步,直到服务端返回请求。通信的异步:指客户端在发送请求后,不必等待服务端的回应就可以发送下一个请求。 所谓同步调用,就是在一个函数或方法调用
2016-08-27 21:32:08 568
原创 响应式函数编程_RxJava & RxAndroid
响应式函数编程_RxJava & RxAndroid主页: https://github.com/ReactiveX/RxJava中文资料: https://github.com/lzyzsd/Awesome-RxJavahttps://www.zhihu.com/question/35511144用途: 异步操作在程序逻辑异常复杂的情况下,仍然可以让代码的逻辑保持简洁配置: 添加
2016-08-23 13:44:32 938
原创 数据库之OrmLite
数据库之OrmLite官方主页: http://ormlite.com/配置: AndroidStudio需要添加以下依赖compile ‘com.j256.ormlite:ormlite-android:4.48’compile ‘com.j256.ormlite:ormlite-core:4.48’用途: 操作数据库使用步骤1. 创建数据库表结构的实体类.示例代码:@Database
2016-08-20 10:58:13 341
原创 数据库之greenDAO 的使用
数据库之greenDAO 的使用官方主页: https://github.com/greenrobot/greenDAO配置: AndroidStudio需要添加以下依赖 compile ‘de.greenrobot:greendao:2.1.0’compile ‘de.greenrobot:greendao-generator:2.1.0’用途: 操作数据库优点: 性能最大化,内存开
2016-08-20 10:37:41 465
原创 新控件之TextInputLayout
新控件之TextInputLayoutDesign兼容包 在Android M Preview发布后,我们获得了一个新的兼容包 —— Android Design Support Library(Android材料设计兼容包), 通过该兼容包的一些新控件,能够方便地实现材料设计风格的应用。先看效果图:是不是很炫酷? 1. 实现 TextInputLayout第一步: 创建一个新的项目第二步
2016-08-19 21:38:07 621
原创 QQ聊天界面侧滑删除
侧滑删除效果图: 实现步骤:1. 创建SwipeLayoutpublic class SwipeLayout extends FrameLayout { public SwipeLayout(Context context) { super(context); } public SwipeLayout(Context context, Attribute
2016-08-19 20:33:12 1440
原创 QQ聊天列表粘性控件
QQ聊天列表粘性控件应用场景:未读数据的清除等 实现步骤:1. 画静态图 先画个两个静态的圆圈,一个大的,一个小的 ,要画的这个图的坐标如下图,通过Path类将上图中的路径坐标一一填充进方法中即可画出下图形状,然后算出两个圆对应下图的坐标替换进去即可。protected void onDraw(Canvas canvas) { // 1. 画固定圆 canvas.drawCir
2016-08-19 19:46:39 1186
原创 QQ侧滑面板特效的实现
ViewDragHelper的介绍 要实现和QQ5.0侧滑的特效,需要借助谷歌在2013年I/O大会上发布的ViewDragHelper类,提供这个类目的就是为了解决拖拽滑动问题。 使用v4包中的ViewDragHelper为了兼容低版本,所以在创建ViewDragHelper对象时如果找不到ViewDragHelper这个类,可以从sdk中拷贝出最新的v4包覆盖lib目录中的V4包即可。
2016-08-19 13:15:32 909
原创 深入分析:Android中app之间的交互(二)
方式二:使用ComponentName 在前一篇相关主题的博文中我们了解了如何使用Action来启动当前应用之外的Activity处理我们的业务逻辑,在本篇笔记中我在简单介绍一下使用ComponentName来与当前应用之外的应用进行交互。 我们首先来了解ComponentName这个类;ComponentName与Intent同位于android.content包下,我们从Android官方
2016-08-19 01:36:31 905
原创 深入分析:Android中app之间的交互(一)
深入分析:Android中app之间的交互1. 使用Action 在我们开发Android App应用的时候,有些需求需要我们启动其他的App来处理一些逻辑 例如我们需要根据一个地址来调用系统或者相关的地图Map App,这样我们不用在自己的App中编写相应的功能,而是通过Intent来发送一些请求,调用相关的应用来处理这些请求。并且我们称这种Intent为隐式的Intent;这种隐式的In
2016-08-19 01:19:48 1334
原创 ListView的四种优化方式
优化方式一: 第一种优化就是重用convertView,这也是最简单的一种优化方式,就是在Adapter类的getView方法中通过判断convertView是否为null,是的话就需要在创建一个视图出来,然后给视图设置数据,最后将这个视图返回给底层,呈现给用户;如果不为null的话,其他新的view可以通过复用的方式使用已经消失的条目view,重新设置上数据然后展现出来。
2016-07-18 15:35:59 19336
原创 整理的一些AndroidStudio实用插件
ADB Idea:ctrl + Shift + A 查找中添加常用卸载安装app的一些操作,无需命令行Android ButterKnife Zelezny:butterKnife自动生成注解插件,包括holderAndroid Parcelable code generator:Parcelable 自动生成插件,findViewById 生成插件Eclipse code formatter: 没
2016-07-14 01:52:02 672
原创 ListView OnScrollListener解析
OnScrollListener实现滚动事件的监听// 给列表设置滑动监听 mLvAppManager.setOnScrollListener(new OnScrollListener() { public void onScrollStateChanged(AbsListView paramAbsListView, int paramInt) { } public
2016-06-30 23:48:30 539
原创 再按一次退出程序
我们平时使用手机的时候,经常会看到很多APP退出的时候,都会有提示再按一次退出应用程序,我觉得这种使用这种提示是很有必要的,如果退出时直接弹出Dialog的话,用户体验不太好。 重写onKeyDown方法,监听手机返回键,按下返回键时会触发此方法:private long exitTime = 0;public boolean onKeyDown(int keyCode, KeyEvent ev
2016-06-30 20:16:22 1229
原创 JAVA中的权限修饰符
Java中修饰符总结:访问控制修饰符 作用: 用于控制被修饰变量、方法、类的可见范围。 public的访问级别是最高的,其次是protected、默认和private 成员变量和成员方法可以处于4个访问级别中的一个:公开、受保护、默认或私有 顶层类可以处于公开或默认级别,顶层类不能被protected和private修饰 局部变量不能被访问控制修饰符修饰
2016-06-24 20:11:33 37028 14
okhttp-2.5.0.jar和okio-1.6.0.jar
2016-08-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人