- 博客(36)
- 资源 (156)
- 收藏
- 关注
原创 AnimatedPathView实现自定义图片标签
老早用过小红书app,对于他们客户端笔记这块的设计非常喜欢,恰好去年在小红书的竞争对手公司,公司基于产品的考虑和产品的发展,也需要将app社交化,于是在社区分享这块多多少少参照了小红书的设计,这里面就有一个比较有意思的贴纸,标签等设计,这里用到了GpuImage的库,这个demo我也将代码开源了,有需要的去fork我的github的代码,今天要说的是详情页面的AnimatedPathView实现可
2016-09-30 16:15:14 4454 2
原创 React Native项目组织结构介绍
代码组织:目录结构:.├── components //组成应用的各个组件│ ├── Routers.android.js //每个组件若实现不一样,分为android的实现和ios的实现。│ ├── Routers.ios.js│ ├── common //公共组件│ ├── issues //议题页面│ ├── navigat
2016-09-28 18:57:41 9388 2
原创 Android的DataBinding原理介绍
Activity在inflate layout时,通过DataBindingUtil来生成绑定,从代码看,是遍历contentView得到View数组对象,然后通过数据绑定library生成对应的Binding类,含Views、变量、listeners等。生成类位于build/intermediates/classes/debug/…package…/databinding/xxx.Java 下,
2016-09-28 11:20:59 7210 2
原创 android dataBinding详解
官方介绍地址:http://developer.android.com/intl/zh-cn/tools/data-binding/guide.html2015 Google IO 大会带来的 Data Binding 库使得 Android 开发者可以方便的实现 MVVM 架构模式。使用DataBinding可以改善应用程序的开发,使代码更加干净优雅。何为MVVM模式,其实就是在View和Mod
2016-09-26 20:41:38 5129
原创 Android开发模式之MVC,MVP和MVVM的简单介绍与区别
相信大家对MVC,MVP和MVVM都不陌生,作为三个最耳熟能详的Android框架,它们的应用可以是非常广泛的,但是对于一些新手来说,可能对于区分它们三个都有困难,更别说在实际的项目中应用了,有些时候想用MVP的,代码写着写着就变成了MVC,久而久之就对它们三个的选择产生了恐惧感,如果你也是这样的人群,那么这篇文章可能会对你有很大的帮助,希望大家看完都会有收获吧!文章重点:(1)了解并区分MVC,
2016-09-26 16:06:20 9271 5
原创 React Native运行原理解析
Facebook 于2015年9月15日推出react native for Android 版本, 加上2014年底已经开源的IOS版本,至此RN (react-native)真正成为跨平台的客户端框架。本篇主要是从分析代码入手,探讨一下RN在安卓平台上是如何构建一套JS的运行框架。一、 整体架构RN 这套框架让 JS开发者可以大部分使用JS代码就可以构建一个跨平台APP。 Facebook官方
2016-09-22 15:54:18 48992 4
原创 RecyclerView 实现横向滚动效果
我相信很久以前,大家在谈横向图片轮播是时候,优先会选择具有HorizontalScrollView效果和ViewPager来做,不过自从Google大会之后,系统为我们提供了另一个控件RecyclerView。RecyclerView是listview之后的又一利器,它可以实现高度的定制。今天就利用RecyclerView实现我们需要的相册效果。先上一个图:主要实现就是一个RecyclerView
2016-09-01 18:51:53 20924 13
原创 React Native移植原生Android
(一)前言之前已经写过了有关React Native移植原生Android项目的文章,不过因为RN版本更新的原因吧,跟着以前的文章可能会出现一些问题,对于初学者来讲还是会有很多疑难的困惑的,而且官方的文档移植没有更新,最新版本集成方法已经发生很大变化啦~OK,今天我们用新版本进行走一遍流程,具体原来就不讲了,直接看移植步骤。有关原理相关的知识点大家可以查看:http://www.lcode.org
2016-09-27 19:31:56 2821 3
原创 android notification,notificationmanager详解
我们知道在使用Android的通知的时候一定会用到NotificationManager 、 Notification这两个类,这两个类的作用分别是:NotificationManager : 是状态栏通知的管理类,负责发通知、清楚通知等。Notification:状态栏通知对象,可以设置icon、文字、提示声音、振动等等参数。这里需要声明一点,由于Android的系统升级,Android在通知
2016-09-25 11:34:08 3493
原创 记一个SwipeMenuListView侧滑删除错乱的Bug
做侧滑删除网上有很多方案,比如重写Listview实现滑动的监听,今天说下一个SwipeListView,这个是之前一个朋友在网上开源的一个封装组件,能够适用于多种情况,项目地址:https://github.com/baoyongzhang/SwipeMenuListView,我也采用了拿来主义直接拿来用了。但是在调试运行的滑动删除数据的时候,却出现了一个问题,删除位置错乱,删除的第一个数据,却
2016-09-23 21:14:07 2497 5
翻译 React Native之Navigator
移动应用很少只包含一个页面。从你添加第二个页面开始,就得考虑如何管理多个页面间的跳转了。导航器正是为此而生。它可以管理多个页面间的跳转,也包含了一些常见的过渡动画,包括水平翻页、垂直弹出等等。NavigatorReact Native目前有几个内置的导航器组件,一般来说我们首推Navigator。它使用纯JavaScript实现了一个导航栈,因此可以跨平台工作,同时也便于定制。场景(Scene)的
2016-09-22 16:31:03 2714
原创 打包自己的aar库
在比较大的 Android 项目的开发中,我们经常会遇到工程、jar 包等等之间相互引用的方式。一般我们通过在 gradle 文件中配置依赖来解决,但是如果通过include的方式来引入第三方库的时候,第一次编译会特别慢,所以Android在V7版本之后为我们添加了一种添加aar的方案,其实说白了就是jar的另一种形式,至于怎么写自己的jar(其实百度,google一大堆,实践下就好了),请点击封
2016-09-21 21:05:52 1908
原创 Android原生嵌入React Native
1.首先集成的项目目录我使用的是直接按照react-native init Project 的格式来导入的,也就是说,我的Android项目目录是跟node_modules是在一个目录下的。我们init完项目之后,项目初始化完成了,这时候我们可以用命令react-native run-android直接运行项目,至于怎么调试,之前已经说过。说一下我们怎么开发和运行分开吧,我们开发一般会选择webs
2016-09-19 20:26:58 2979
原创 React Native控件之Listview
ListView组件用于显示一个垂直的滚动列表,其中的元素之间结构近似而仅数据不同。ListView更适于长列表数据,且元素个数可以增删。和ScrollView不同的是,ListView并不立即渲染所有元素,而是优先渲染屏幕上可见的元素。ListView组件必须的两个属性是dataSource和renderRow。dataSource是列表的数据源,而renderRow则逐个解析数据源中的数据,然
2016-09-19 10:02:34 1897
原创 React Native控件只TextInput
学习React Native也有2个月了,从最开始的页面到点点击事件,到调用接口大体都会了,今天实现一个简单的登录功能。这里需要说明几点:1、组件在React Native中,默认是带一条横线的,如果想去掉输入框下面的横线,需要给指定一个underlineColorAndroid='transparent',这样就可以去掉输入框下面的横线了;2、密码输入框需要指定属性:secureTextEntr
2016-09-17 19:06:27 7486 3
转载 React Native调试心得
在做React Native开发时,少不了的需要对React Native程序进行调试。调试程序是每一位开发者的基本功,高效的调试不仅能提高开发效率,也能降低Bug率。本文将向大家分享React Native程序调试的一些技巧和心得。Developer MenuDeveloper Menu是React Native给开发者定制的一个开发者菜单,来帮助开发者调试React Native应用。提示:生
2016-09-17 18:41:20 2755
转载 Java 8新特性
编者注:Java 8已经公布有一段时间了,种种迹象表明Java 8是一个有重大改变的发行版。在Java Code Geeks上已经有大量的关于Java 8 的教程了,像玩转Java 8——lambda与并发,Java 8 Date Time API 教程: LocalDateTime和在Java 8中抽象类与接口的比较。我们也在其他地方引用了15个必读的Java 8教程。当然,我们也探究了Java
2016-09-17 14:07:56 1441
转载 react-native版本升级
时刻将React Native更新到最新的版本,可以获得更多API、视图、开发者工具以及其他一些好东西(译注:官方开发任务繁重,人手紧缺,几乎不会对旧版本提供维护支持,所以即便更新可能带来一些兼容上的变更,但建议开发者还是尽一切可能第一时间更新)。由于一个完整的React Native项目是由Android项目、iOS项目和JavaScript项目组成的,且都打包在一个npm包中,所以升级可能会有
2016-09-17 12:50:31 3248
原创 android的Drawable详解
Drawable简介Drawable有很多种,用来表示一种图像的概念,但他们又不完全是图像,他们是用过颜色构建出来的各种图像的表现形式。Drawable一般都是通过xml来定义的 ,当然我们也可以通过代码来创建,Drawable是一个抽象的类,是所以Drawable的基类,每个具体的Drawable都是它的子类,如ShapeDrawable,BitmapDrwable等,其结构如下图:Drawab
2016-09-16 21:17:44 2255
原创 Spring boot之hello word
环境准备一个称手的IDE(首选Myeclipse,也可以选Eclipse)Java环境(JDK 1.7或以上版本)Maven 3.0+(Eclipse和Idea IntelliJ内置,如果使用IDE并且不使用命令行工具可以不安装)一个最简单的Web应用使用Spring Boot框架可以大大加速Web应用的开发过程,首先在Maven项目依赖中引入spring-boot-starter-web:pom
2016-09-15 11:00:06 1241
原创 Android 6.0 运行时权限处理问题
序自从升级到Android M以来,最大的改变就是增加了运行时权限RuntimePermission,6.0以上的系统如果没有做适配,运行了targetSDK=23的App时就会报权限错误。我们知道6.0以下的系统是按照的时候权限申请的,6.0和之后的版本是我们想要使用某个app的权限,去动态申请的,这也是基于安全上的考虑吧(比如:单机的象棋对战,请求访问通讯录权限等不合理的权限,这肯定是有问题的
2016-09-11 19:28:32 1737
原创 Flexbox布局指南
Flexbox布局概念Flexbox布局( Flexible Box 或CSS3 弹性布局),是CSS3中的一种新的布局模式,是可以自动调整子元素的高和宽,来很好的填充任何不同屏幕大小的显示设备中的可用显示空间,收缩内容防止内容溢出,确保元素拥有恰当的行为的布局方式。使用Flexbox来布局更容易,可以使用更少的代码,更简单的方式实现更复杂的布局,例如对齐方式,排列方向,排列顺序(这也是Flexb
2016-09-10 21:15:39 2894 3
转载 flexbox基本原理
新版的flexbox规范分两部分:一部分是container,一部分是 items。flexbox是一整套布局规范,包含了多个css属性,所以学习起来比`float: left;` 这样简单的布局要复杂很多。基本原理容器上有 主轴和纵轴的概念,默认主轴(main-axis)是横向,从左到右,纵轴是竖向,从上到下。其中所有的孩子的布局都会受到这两个轴的影响。后面会讲到,有很多相关的css属性就是通过
2016-09-10 21:04:09 1360
原创 Hibernate入门
Hibernate是什么 Hibernate是一个轻量级的ORMapping框架 ORMapping原理(Object Relational Mapping) ORMapping基本对应规则:1:类跟表相对应2:类的属性跟表的字段相对应3:类的实例与表中具体的一条记录相对应4:一个类可以对应多个表,一个表也可以对应对个类5:DB中的表可以没有主键,但是Object中必须设置主键字段6
2016-09-10 20:01:40 1837
原创 老司机带你玩转web service
当大型需求被数个公司分割开来,各公司系统相互交换数据的问题就会接踵而来。毕竟是多家不同的公司的产品,研发开发语言、采用技术框架基本上是百花齐放。怎样让自家系统提供的服务具有跨平台、跨语言、跨各种防火墙,让其他公司的研发用起来没障碍和爽呢?进过前期的技术调研和实践,最终将目光放在了轻量级 webService 服务上面 1. WebService 服务技术的关键点XML: 做为 WebSer
2016-09-10 13:58:22 2219 2
转载 android studio编译慢的问题
1.修改android studio的使用堆内存,根据自己电脑的内存,尽量设置的大一点,点击help->如下图: 2.接下来设置使用离线gradle构建,一开始就是使用了内置的默认路径gradle,勾选offline这个选项,编译的速度快的不止一点点,在.gradle的离线位置,建立一个gradle.properties的文件,设置精灵后台一直编译,这样提高了很多的速度,如下图:
2016-09-08 19:10:55 1470
转载 React 之props属性
React 里有一个非常常用的模式就是对组件做一层抽象。组件对外公开一个简单的属性(Props)来实现功能,但内部细节可能有非常复杂的实现。可以使用 JSX 展开属性 来合并现有的 props 和其它值:return ;如果不使用 JSX,可以使用一些对象辅助方法如 ES6 的 Object.assign 或 Underscore _.extend。return Component(Object.
2016-09-08 12:32:26 6430
原创 命令模式
命令模式定义将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。作用命令模式主要应用于将行为调用者与实现者解耦。讲发出请求和执行对象分开来。例如:比如我们以前惯用的写代码的方式是LogicProcess logic = new LogicProcess(); 然后紧接着调用实现方法logic.process(),这种写法其实非常普遍,
2016-09-07 22:21:15 1853
转载 Android Wear开发
Android Wear从2014年3月发布到现在已经从1.0发展到2.0(目前还没正式发布)。其产品定位也发化了巨大变化,因为Android Wear 1.0通讯方式只有蓝牙,限定了系统,比较依赖手机。比如:重新连接新的手机,手表端会删除所有安装的应用,重新同步新手机的应用到手表。所有应用更新,系统更新都需要通过手机端来完成,没有单独的应用市场。可以理解为Android Wear手表是个手机伴侣
2016-09-06 14:01:21 2412 1
转载 ECMAScript 6之变量的解构赋值
1,数组的解构赋值基本用法ES6允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destructuring)。以前,为变量赋值,只能直接指定值。var a = 1;var b = 2;var c = 3;ES6允许写成下面这样。var [a, b, c] = [1, 2, 3];上面代码表示,可以从数组中提取值,按照对应位置,对变量赋值。本质上,这种写法属于“模式匹配
2016-09-05 21:57:23 1328
原创 SwipeListView实现仿ios的侧滑
github地址:https://github.com/xiangzhihong/SwipeMenuListView今天介绍一个SwipeMenuListView实现侧滑删除的例子,其实和listview的用法一样,就是多了创建删除等view的步骤,然后通过addview添加到父布局中。效果如果:当然你也也可以根据自己的需要增加更多的自定义View。直接看代码吧:Add dependencydep
2016-09-05 11:50:00 1076
原创 BottomSheet底部动作条使用
底部动作条底部动作条(Bottom Sheets)是一个从屏幕底部边缘向上滑出的一个面板,使用这种方式向用户呈现一组功能。底部动作条呈现了简单、清晰、无需额外解释的一组操作。使用环境底部动作条(Bottom Sheets)特别适合有三个或者三个以上的操作需要提供给用户选择、并且不需要对操作有额外解释的情景。如果只有两个或者更少的操作,或者需要详加描述的,可以考虑使用菜单(Menu)或者对话框替代。
2016-09-04 22:21:26 2748
原创 Android 仿百合网超火爆社交app首页滑动效果
探探,百合网等神器的首页有一个相册加载个控件,通过左滑右滑加载新的照片,同时左滑丢弃这个照片,右滑则表明对这个照片感兴趣。这个效果是怎么实现的呢?1,Android3.0以后控件中增加了setTranslationX,setTranslationY方法,用于控件沿X,Y轴移动。其原点是相对于控件开始移动的位置,注意,这点很重要。setRotation用于设置控件旋转角度,直接将角度值填入参数即可(
2016-09-03 22:47:30 2874
原创 迭代器模式
迭代器模式(Iterator): 提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露其内部的表示。用途:在软件构建过程中,集合对象内部结构常常变化各异。但对于这些集合对象,我们希望在不暴露其内部结构的同时,可以让外部客户代码透明地访问其中包含的元素;同时这种“透明遍历”也为“ 同一种算法在多种集合对象上进行操作”提供了可能。使用面向对象技术将这种遍历机制抽象为“迭代器对象”为“应对变化中的集
2016-09-03 10:54:14 1436
原创 Android性能优化之TraceView和Lint使用详解
Android lint工具是Android studio中集成的一个代码提示工具,它主要负责对你的代码进行优化提示,包括xml和java文件,很强大。编写完代码及时进行lint测试,会让我们的代码变得非常规范而且避免代码冗余。让我们及时发现代码中隐藏的问题。lint的使用时非常简单的,我看可以用它实现代码布局的优化,Java代码的优化,不过我觉得根本解决问题还是得依赖于开发者的素质。例子:我们需
2016-09-02 11:40:02 3050
转载 React Native学习指南
React-Native学习指南字数2059 阅读1142 评论0 喜欢7本指南汇集React-Native各类学习资源,给大家提供便利。指南正在不断的更新,大家有好的资源欢迎Pull Requests!同时还有Awesome React-Native系列https://github.com/jondot/awesome-react-native目录教程React NativeReact.jsES
2016-09-01 12:37:07 2248
Android离线包前端代码
2022-06-03
ModalViewDemo.zip
2020-11-30
ArouterDemo.zip
2019-07-05
Android仿微信图片选择
2019-03-12
iOS骨架屏源码
2019-01-04
Javassist代码注入
2018-10-15
仿喜马拉雅FM
2018-09-26
Android原生集成RN
2018-06-06
Flutter跨平台
2018-06-01
阿里的Atlas组件化框架
2018-05-10
Android模块化
2018-04-23
hexo博客打赏源码
2018-03-27
阿里云精选API
2017-12-27
美团RN项目
2017-07-31
安卓聊天页面
2017-06-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人