- 博客(52)
- 资源 (13)
- 问答 (18)
- 收藏
- 关注
原创 阅读分析snabbdom源码
尤大在官宣Vue 2.0的时候这么说过:渲染层基于一个轻量级的 Virtual DOM 实现进行了重写,该 Virtual DOM 实现 fork 自 snabbdom。新的渲染层相比 v1 带来了巨大的性能提升,也让 Vue 2.0 成为了最快速的框架之一。那么对于想要深入了解Vue源码的人来说先深入了解一下snabbdom的实现是有必要的什么是Virtual DOMVirtual...
2019-03-05 18:23:44
995
原创 京晚8点--H5单页面手势滑屏效果实践
项目背景京晚8点作为内容平台重点打造的内容IP,通过优质的内容形式,潜移默化中让用户了解产品,建立对京东开始玩内容的心智和认知,目前这个项目已经迭代到第5期,最开始的时候我们的首页效果是一个卡片形式的时间轴,首页的背景大图会随着时间轴拖动到不同的卡片而进行切换:从第5期开始,我们采用了一种全新的交互方式来给用户更好的体验反馈,那就是滑屏,可以先看一下效果:要实现的滑屏效...
2018-08-27 23:21:59
1385
原创 video标签沉浸式播放解决方案
“沉浸播放式”这个概念是我从Android开发里面的沉浸式引申过来的一个概念,沉浸式其实就是隐藏页面顶部的status bar和底部的navigation bar之后呈现出来的页面,一般用户很容易把沉浸式状态栏和透明化状态栏混为一谈,他们的区别如下:沉浸式状态栏 透明化状态栏 那么回到前端开发,让我们看一下如何让video标签呈现这种沉浸式的播放效果,平常我们使用video标签都...
2018-07-23 00:06:48
3473
1
原创 vue-router中使用EventBus传值需要注意到的问题
最近负责开发一个视频相关的项目,要用到vue-router,同时涉及到一些共有状态管理,但是少量的状态又不想用vuex,于是用到了EventBus,一般来说, 我们用EventBus的步骤如下: - 首先新建一个js用来创建我们的EventBus,如Bus.jsimport Vue from 'vue'; ...export default new Vue(); 接着,我们...
2018-05-29 21:59:22
6256
1
原创 深入浅出pwa
PWA的概念PWA的全称为:Progressive Web Apps(渐进式Web Apps),是Google提出的,可以带来突破性体验的Web应用。Google所阐述的PWA的主要特点如下: - 渐进式 - 适用于选用任何浏览器的所有用户,因为它是以渐进式增强作为核心宗旨来开发的。 - 自适应 - 适合任何机型:桌面设备、移动设备、平板电脑或任何未来设备。 - 连接无关性 - 能够...
2018-05-25 19:03:05
1631
原创 webpack从0到1使用指南
文章同步发表在:博客地址为什么要用webpack关于为什么要使用webpack,我比较认同的一种说法是: webpack可以很好地管理你开发中遇到的各种HTML、JS、CSS以及各种图片资源文件,同时对应不同的资源,webpack还提供了对应的Loaders将其进行转化为适用于浏览器使用的格式如何从0开始上手webpack后会无期里面,阿吕说过这么一句话:”你连世...
2018-05-19 16:17:03
697
原创 不吹不黑聊聊前端框架--尤雨溪Live整理
最近买了尤雨溪大大的Live:不吹不黑聊聊前端框架,这场Live让我的前端思维到了前所未有的高度:当我们身为前端开发萌新,在前端人才金字塔的浮动与挣扎中思考该学什么框架、该如何入门前端、又遇到学习瓶颈怎么办的时候,正是这些业界大牛们用自己的行动引导着我们,有如尤大所说:多思考场景需求,多看看技术到底做了怎样的取舍,现在把相关的东西作为笔记整理下来,希望对前端开发有兴趣的同学都可以去支持一下尤大组件可
2017-11-10 23:20:50
1939
原创 javascript中call、apply、bind方法的使用
context的概念在知道我们为什么要使用call、apply、bind方法之前,我觉得有必要先了解一下context的相关概念,通常context的作用是取决于函数将如何被调用,当函数作为对象的方法调用时,this就会被设置为调用方法的对象: var object = { foo: function(){ console.log(this === objec
2017-11-08 20:52:40
450
原创 JavaScript中的立即执行函数
通常我们声明一个函数有以下几种方式:// 声明函数f1function f1() { console.log("f1");}// 通过()来调用此函数f1();//一个匿名函数的函数表达式,被赋值给变量f2:var f2 = function() { console.log("f2");}//通过()来调用此函数f2();//一个命名为f3的函数的函数表达式(这里
2017-09-11 21:31:35
679
原创 Handler机制从入门到放弃(二)
从注释看起Hander的源码只有不到800行,而且大多数代码相对来说还是比较好理解的,尤其是相对于其他更加接近底层的代码来说,在看源码时候有一点挺重要的就是不要忽略注释的作用,Handler类开头有这么几行注释: <p>There are two main uses for a Handler: (1) to schedule messages and runnables to be execut
2016-10-31 10:09:37
1770
原创 Handler机制从入门到放弃(一)
闲来无事,准备好好梳理一下Handler机制,之前分析过没有写成博客,结果就是慢慢的淡忘了,这次趁着刚分析完,赶紧写下来。在开始分析之前先打打基础,理解理解什么是线程以及什么是Handler,这里大部分内容引用一篇来自伯乐在线的文章,因为看来看去关于基础的部分这个人已经说得很好了,我就负责把主要的部分抽取出来。原文地址:Android线程和Handler基础入门现在大多数的移动设备已经变得越来越快,
2016-10-31 10:08:40
1239
原创 人生苦短,我用Python--分分钟下载知乎美图给你看
起上次说了要爬知乎的图片,于是花了一下午的时间去完成这件事,发现暂时接触到的爬虫总是逃脱不了一个规律:模拟登陆获取真实网页HTML源代码解析获取到的网页源代码获取想要的资源(下载到某个文件夹或者输出到表格中整合起来)也许和我说的有一些出入,应该是刚学这个东西的原因,接下来还想研究一下多线程爬虫、添加代理、爬取海量数据并整合成图标形式,先把能做的做了。承因为是在上一次的基础上进行的,所以没有
2016-08-11 11:28:15
11899
24
原创 人生苦短,我用Python--一起来爬知乎娘
上次爬了教务处的成绩,接下来想去爬一爬知乎娘,好像大家都很喜欢爬知乎娘,GitHub上貌似已经有人把获取各种知乎数据的操作封装好了:zhihu-python ,但是良辰表示还是想自己试一试,我就爬点简单的,难度大的我也不会,我瞄准的是我自己关注的人的数据,差不多就这些东西: 关注者 / 提问 / 回答 / 赞同那么下面开始分析,要拿到这个数据肯定是要先登陆的,那么先找到登陆界面:这算是比
2016-08-09 09:41:41
4903
7
原创 人生苦短,我用Python--爬虫模拟登陆教务处并且保存数据到本地
刚开始接触Python,看很多人玩爬虫我也想玩,找来找去发现很多人用网络爬虫干的第一件事就是模拟登陆,增加点难度就是模拟登陆后在获取数据,但是网上好少有Python 3.x的模拟登陆Demo可以参考,加上自己也不怎么懂Html,所以这第一个Python爬虫写的异常艰难,不过最终结果还是尽如人意的,下面把这次学习的过程整理一下。工具 - 系统:win7 64位系统 - 浏览器:Chrome
2016-08-02 10:01:52
7850
转载 Android Design Support Library--Translucent System Bar 的最佳实践
引言本来是想自己写一些关于透明状态栏或者沉浸式状态栏实现的文章,但是在简书上关注了D_clock爱吃葱花之后发现他的一篇关于透明状态栏实现的文章写的面面俱到,于是就在征询作者同意的情况下把这篇文章加入这一系列。在开始之前我们先陈述一个事实:其实很多人分不清透明化状态栏(Translucent Bar)跟沉浸式(Immersive Mode),很多人以为两者没有什么不同,其实他们是有区别的:
2016-07-11 17:11:49
1337
原创 Android Design Support Library--FloatingActionButton及其Behavior的使用
引言如果说前面提到的TextInputLayout、SnackBar的应用还不是很常见的话,那么今天提到的FloatingActionButton绝对是一个随处可见的Material Design控件了,无论是我们常用的知乎、印象笔记或者是可爱的谷歌全家桶套装都可以见到FloatingActionButton的身影,今天就来说说FloatingActionButton。关于使用其实我相信很多人都用过
2016-05-11 20:22:17
10499
原创 Android Design Support Library--简约而不简单的SnackBar
引言在之前我有提到这一篇Android Design Support Library系列文章是关于SnackBar的,但是由于要用到CoordinatorLayout所以先翻译了一篇相关文章,如果还不了解的可以先看一下Android Design Support Library–使用CoordinatorLayout来处理滚动 ,这一篇我们讲SnackBar,SnackBar其实就是Toast的升级
2016-05-07 13:13:17
3607
翻译 Android Design Support Library--使用CoordinatorLayout来处理滚动
引言本来这一次想写关于SnackBar的,但是因为官方都推荐使用Material Design控件最好使用CoordinatorLayout 来作为它们的父布局,所以就先讲解一下CoordinatorLayout 的知识,本来想自己去理解的,但是发现网上已经有一份很好的材料了就给搬过来了,原文是CodePath的,我给翻译了一遍,如果有出入的话欢迎指正—英文原文地址概述 CoordinatorLa
2016-05-03 18:11:41
4840
原创 Android Design Support Library--TextInputLayout的使用
本篇文章已授权微信公众号 guolin_blog (郭霖)独家发布引言Google在2015的IO大会上,给我们带来了更加详细的Material Design设计规范,同时,也给我们带来了全新的Android Design Support Library,Android Design Support Library的兼容性更广,直接可以向下兼容到Android 2.2,我准备从最简单的控件开始,逐
2016-04-30 00:22:35
12918
原创 仿网易云音乐部分UI实现
引言有一段时间闲着没事做,突发奇想,于是就去防了部分网易云UI的界面,最开始是想仿成这个样子: 于是反编译了网易云的源文件,果不其然混淆的很彻底,表示并不能看懂,诺: 里面的代码大部分都是smali语法,也就是这样的:.class public La/auu/a;.super Ljava/lang/Object;.source "a.java"# static fields.field
2016-04-23 15:40:36
17740
1
转载 公共技术点之 Java 反射 Reflection
1. 了解 Java 中的反射1.1 什么是 Java 的反射 Java 反射是可以让我们在运行时获取类的函数、属性、父类、接口等 Class 内部信息的机制。通过反射还可以让我们在运行期实例化对象,调用方法,通过调用 get/set 方法获取变量的值,即使方法或属性是私有的的也可以通过反射的形式调用,这种“看透 class”的能力被称为内省,这种能力在框架开发中尤为重要。 有些情况下,我们要使用
2016-04-21 14:04:03
754
原创 怎样的Android开发毕业生可以算达到优秀的水平
从知乎上看到这个问题,其实我也很想知道怎么样的Android开发毕业生才算达到了优秀的水平,于是找到了一份15年腾讯的Android开发毕业生的经验总结,然后看到了这么一段话: 如果想变得优秀那就去看那些优秀的人在学什么,做什么,想尽一切办法和他们交流;多出去看看这个世界,然后把自己逼到往死里学。我把原文弄成图片导出来,不是很清晰,但是源文档是PDF的相当清晰,最下面提供下载链接:因为作者是直
2016-04-20 19:58:47
1260
原创 Eclipse项目红色感叹号,JAR包无报错
今天做项目的时候项目莫名出现红色感叹号,JAR包也没有报错,但是Marker视图下problem出现这么一行语句:Archive for required library: ‘libs/WBShareActivity.java’ in project ‘你的项目名’ cannot be read or is not a valid ZIP file解决办法如下: 找到项目根目录,找到根目录下的.c
2016-04-20 15:13:56
9914
1
原创 使用ViewPager动画来做出不一样的引导页
就算Google从很早开始就自带了设置引导页动画的接口,但是就我目前看来市面上使用引导页动画的还是很少的,也不知道是为什么,一想到Material Design的使用率也这么少表示很心塞。 首先来看看市面上千篇一律的引导页效果,诺: 很单调对不对,你们没看吐我都看吐了,再看一份加了引导页动画效果的: 有没有瞬间耳目一新的感觉,下面就谈谈如何做出这样的引导页动画。其实从Android 3.0也就
2016-04-16 11:57:42
8440
11
原创 svn导包遇到case expressions must be constant expressions
今天项目组有新项目做,我从SVN上把包导入eclipse出了这么一个毛病,在好几个Switch语句下都出现了这么一个问题: case expressions must be constant expressions,图如下: 于是就上网找,发现解决方案如下: 右键项目找到Properties,找到这个地方: 把Is Library前面这个勾去掉,然后clean一下项目就好了,记录一下
2016-04-12 21:59:18
1417
原创 为什么我们创建ListView的ViewHolder要使用static去声明
引言最近做项目写多了ListView很好奇为什么它的ViewHolder要使用static关键字去声明,于是在网上找答案,整理如下:大致意思就是:总体上来说,当一个内部嵌套类不依赖于外部类的时候,我们就会把它声明为静态的,在我们的案例中,ViewHolder从来没有使用到适配器类(外部类)的任何成员变量,因此我们可以把它声明为静态的,以保持它作为一个简单的静态嵌套类来维持外部类是一个嵌套的可读性,
2016-04-07 11:28:10
1916
原创 ViewGroup的事件分发机制
引言上一次我在View的事件分发机制里完整的分析了View对于触屏点击事件的分发过程,接下来继续探索之旅,紧接着分析ViewGroup的事件分发机制,ViewGroup其实就是一组View的集合,它也是继承于View的,它本身也可以包含View和ViewGroup,方便起见我们还是延用上一次的布局,不过这一次我们给根布局也设置了点击事件和触摸事件:public class MainActivity
2016-04-04 21:08:55
1888
原创 View的事件分发机制解析
引言Android事件构成 在Android中,事件主要包括点按、长按、拖拽、滑动等,点按又包括单击和双击,另外还包括单指操作和多指操作。所有这些都构成了Android中的事件响应。总的来说,所有的事件都由如下三个部分作为基础:按下(ACTION_DOWN)移动(ACTION_MOVE)抬起(ACTION_UP)所有的操作事件首先必须执行的是按下操作(ACTION_DOWN),之后所有的操
2016-04-03 22:41:21
5302
原创 Android回调函数机制那点事
引言 在Android的学习过程中经常会听到或者见到“回调”这个词,那么什么是回调呢?所谓的回调函数就是:在A类中定义了一个方法,这个方法中用到了一个接口和该接口中的抽象方法,但是抽象方法没有具体的实现,需要B类去实现,B类实现该方法后,它本身不会去调用该方法,而是传递给A类,供A类去调用,这种机制就称为回调。这么说可能还是有些模模糊糊,接下来我们用类比的方法一步步来看到底该怎么写一个回调函数
2016-04-01 23:12:26
5939
转载 仿最美应用-每日最美 钢琴律动效果(二)
一、可以侧拉刷新加载的ViewPager 首先需要添加ViewPager,这个是一个可以侧拉加载刷新的ViewPager,这里最美使用的是GitHub上的一个开源项目: Android-PullToRefresh 修改我们的activity_main.xml布局文件:<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:and
2016-03-27 15:46:29
1672
转载 仿最美应用-每日最美 钢琴律动效果(一)
前言 项目GIthub地址 原先我并不知道有最美应用这么一个app,但是这个app却被我们的产品经理和老板所推崇,每次开会时都要拿出来说一说这个应用什么什么效果做的好,终于有一天,我们的老板突然和他们说要我们做着这个效果试试看,当时真的是差点吐血,无奈之下进行了反编译,通过一些残留的思路和线索捣鼓了出来,可能很多人不知道这个应用,首先我们看下大致的效果: 一、界面分析首先我们来大概的分析一下这
2016-03-27 15:32:22
1929
转载 Android Fragment 基本介绍
转载来源FragmentAndroid是在Android 3.0 (API level 11)开始引入Fragment的。可以把Fragment想成Activity中的模块,这个模块有自己的布局,有自己的生命周期,单独处理自己的输入,在Activity运行的时候可以加载或者移除Fragment模块。可以把Fragment设计成可以在多个Activity中复用的模块。当开发的应用程序同时适用于平板电脑
2016-03-27 15:12:03
637
原创 Android精华汇总
公共技术知识点部分Android Activity生命周期onCreate中的savedInstanceState有何具体作用Android资源文件 - 使用资源存储字符串 颜色 尺寸 整型 布尔值 数组Android系统架构解析 显而易见的,根据上图自底向上我们知道Android系统架构包含5大部分:Linux Kernel(Linux内核) 、Libraries(库)、Androi
2016-03-15 23:20:42
2172
翻译 APP启动页的正确配置方式
在APP的启动页面(Splash Screen)好多都是等待3秒,好一点的还可以跳过,但是有的跳过也是假的按钮。当然像一些大厂的APP,像网易新闻等启动页面都是广告,人家要收广告费的。但是,对于一些普通的APP,有的也出现等待三秒的启动画面,出现一个大大的logo,好像告诉用户他打开的是什么应用,加深用户的映像,这完全是浪费用户的时间,给用户很差的体验!其实我只想快点进入APP啊!!!而且有些APP
2016-03-01 16:54:15
8149
2
转载 Android线程和Handler基础入门
现在大多数的移动设备已经变得越来越快,但是它们其实也不算是非常快。如果你想让你的APP既可以承受一些繁杂的工作而又不影响用户体验的话,那么必须把任务并行执行。在Android上,我们使用线程。端一杯咖啡,然后仔细阅读这篇文章。我会给大家介绍一下线程的概念,还有在Java中怎么使用线程,在线程中怎么使用Handler等。如果需要使用异步处理或者并行任务的话,那么你一定会用到线程。什么是线程?线程或者线
2016-01-28 14:38:58
673
转载 Android的消息处理机制(图+源码分析)——Looper,Handler,Message
转自:http://www.cnblogs.com/codingmyworld/archive/2011/09/12/2174255.html android的消息处理有三个核心类:Looper,Handler和Message。其实还有一个Message Queue(消息队列),但是MQ被封装到Looper里面了,我们不会直接与MQ打交道,因此我没将其作为核心类。下面一一介绍:线程的魔法师 Lo
2016-01-27 22:17:08
644
原创 Material Design中文版(二)
什么是Material Design环境 1、三维世界 Material环境处在一个三维的空间,这意味着处在其中的所有物体都具有X、Y、Z的三维坐标属性,Z轴与屏幕的表面垂直对齐,并且向着用户的视角延伸,每个Material元素都在Z轴上占有一个单独的位置,并有一个1dp的标准厚度,等价于在一个160像素密度的屏幕上一个像素的厚度。 而在网页上Z轴是用来分层而不是改变用户视角的,通过操作Y轴
2016-01-11 22:07:51
1605
原创 Material Design中文版(一)
引言 我们挑战自我,为我们的用户创造了一种崭新的视觉设计语言,不仅结合了好的设计的经典原则,还融入了创新的设计理念,这就是Material Design(质感化设计),这份文档是动态更新的,将会随着我们对Material Design的原则和细节的深入研究而不断地完善。[目标] [原则]目标创造一种结合了经典设计原则以及创新的设计理念的崭新的视觉设计语言提供一个跨平台和设备尺寸大小的独一无二的底
2016-01-10 14:52:10
3676
网络是怎样连接的_户根勤
2017-09-13
AsyncTask Demo
2015-12-18
Handler postDelayed()执行耗时操作
2016-10-28
关于List数组为空的问题
2016-08-23
ActionBarDrawerToggle导致ToolBar内部布局偏移问题
2016-04-27
如何实现如下网易云音乐APP的效果
2016-03-05
jsp项目运行时候出现Session error
2016-02-25
使用Android ORMlite框架时候出现异常
2016-02-19
关于这段ProgressBar的代码看不懂
2015-05-21
关于SimpleAdapter的几点疑问
2015-05-18
eclipe运行单元测试总是出现空指针异常
2015-05-06
为什这个处理异常的程序这么写不行?
2015-04-26
刚安装android studio遇到问题,给出详细截图求解答,很急
2015-04-25
如何理解java中一个GUI组件只能在一个容器中出现一次?
2015-04-22
这个java程序问题出在哪里?
2015-04-20
如何理解这个java程序
2015-04-16
求帮忙理解一个JAVA程序,该程序的功能是将次行块风格的代码转换成行尾块
2015-04-16
java-web新建第一个项目显示出错
2015-04-10
3x3的二维矩阵里面随机的用0或1填充,找出该矩阵里面的相同行或者列,没有输出
2015-04-07
在一个3x3的二维矩阵里面随机的用0或1填充,找出该矩阵里面的相同行或者列
2015-04-07
TA创建的收藏夹 TA关注的收藏夹
TA关注的人