自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(34)
  • 资源 (6)
  • 收藏
  • 关注

原创 小程序 目录

·bindtap

2018-04-28 11:52:34 242

原创 Android 文章目录

基础:Activity 生命周期两三事Activity 启动模式序列化 Serializable 和 ParcelableView 事件传递View 绘制流程动画基础设计模式:单例模式建造者模式观察者模式代理模式进阶:解决65535限制优化:Android

2018-01-06 22:59:54 259

转载 Emoji表情符号录入MySQL数据库报错的解决方案

java MySQL插入Emoji表情符号数据,会出现 Incorrect string value: ‘\xF0\x9F\x92\x8BTi…’错误 Caused by: java.sql.SQLException: Incorrect string value: '\xF0\x9F\x98\x97\xF0\x9F...' for 产生原因分析: 普通的字符串或者表情都是占位3个...

2018-06-28 10:49:34 486

转载 Android 动画基础

一 传统 View 动画(Tween/Frame)1.1 Tween 动画主要有 4 中:缩放、平移、渐变、旋转文件位置: res/anim/filename.xml编译资源的数据类型:an Animation资源引用:Java: R.anim.filenameXML: @[package:]anim/filename <set xm

2018-01-09 09:26:31 1666

转载 Glide 源码分析

###1. 功能介绍图片加载框架,相对于UniversalImageLoader,Picasso,它还支持video,Gif,SVG格式,支持缩略图请求,旨在打造更好的列表图片滑动体验。Glide有生命周期的概念(主要是对请求进行pause,resume,clear),而且其生命周期与Activity/Fragment的生命周期绑定,支持Volley,OkHttp,并提供了相应的integra

2018-01-09 09:25:20 2198

转载 EventBus 源码解析

1. 功能介绍1.1 EventBusEventBus 是一个 Android 事件发布/订阅框架,通过解耦发布者和订阅者简化 Android 事件传递,这里的事件可以理解为消息,本文中统一称为事件。事件传递既可用于 Android 四大组件间通讯,也可以用户异步线程和主线程间通讯等等。传统的事件传递方式包括:Handler、BroadCastReceiver、Interfac

2018-01-08 16:14:17 194

转载 Java 动态代理

1. 相关概念1.1 代理在某些情况下,我们不希望或是不能直接访问对象 A,而是通过访问一个中介对象 B,由 B 去访问 A 达成目的,这种方式我们就称为代理。这里对象 A 所属类我们称为委托类,也称为被代理类,对象 B 所属类称为代理类。代理优点有:隐藏委托类的实现解耦,不改变委托类代码情况下做一些额外处理,比如添加初始判断及其他公共操作根据程序运行前代理

2018-01-08 16:11:45 199

原创 依赖注入

1. 依赖如果在 Class A 中,有 Class B 的实例,则称 Class A 对 Class B 有一个依赖。例如下面类 Human 中用到一个 Father 对象,我们就说类 Human 对类 Father 有一个依赖。public class Human { ... Father father; ... public Human() {

2018-01-08 16:07:06 182

转载 Android View 绘制流程

View 绘制机制1. View 树的绘图流程当 Activity 接收到焦点的时候,它会被请求绘制布局,该请求由 Android framework 处理.绘制是从根节点开始,对布局树进行 measure 和 draw。整个 View 树的绘图流程在ViewRoot.java类的performTraversals()函数展开,该函数所做 的工作可简单概况为是否需要重新计算视图

2018-01-08 15:59:46 321

转载 Android View 事件传递

1、基础知识(1) 所有 Touch 事件都被封装成了 MotionEvent 对象,包括 Touch 的位置、时间、历史记录以及第几个手指(多指触摸)等。(2) 事件类型分为 ACTION_DOWN, ACTION_UP, ACTION_MOVE, ACTION_POINTER_DOWN, ACTION_POINTER_UP, ACTION_CANCEL,每个事件都是以 ACTI

2018-01-08 15:56:16 223

转载 Java 反射 Reflection

1. 了解 Java 中的反射1.1 什么是 Java 的反射Java 反射是可以让我们在运行时获取类的函数、属性、父类、接口等 Class 内部信息的机制。通过反射还可以让我们在运行期实例化对象,调用方法,通过调用 get/set 方法获取变量的值,即使方法或属性是私有的的也可以通过反射的形式调用,这种“看透 class”的能力被称为内省,这种能力在框架开发中尤为重要。 有些情况

2018-01-08 15:51:37 122

转载 Volley 源码解析

1. 功能介绍1.1. VolleyVolley 是 Google 推出的 Android 异步网络请求框架和图片加载框架。在 Google I/O 2013 大会上发布。名字由来:a burst or emission of many things or a large amount at once发布演讲时候的配图从名字由来和配图中无数急促的火箭可以

2018-01-08 15:43:41 171

转载 Java 注解 Annotation

不少开源库都用到了注解的方式来简化代码提高开发效率。本文简单介绍下 Annotation 示例、概念及作用、分类、自定义、解析,并对几个 Android 开源库 Annotation 原理进行简析。1. Annotation 示例Override Annotation@Overridepublic void onCreate(Bundle savedInstanceSta

2018-01-08 15:25:21 130

转载 Android Data Binding 框架

来源 https://github.com/LyndonChin/MasteringAndroidDataBinding本教程是跟着 Data Binding Guide 学习过程中得出的一些实践经验,同时修改了官方教程的一些错误,每一个知识点都有对应的源码,争取做到实践与理论相结合。Data Binding 解决了 Android UI 编程中的一个痛点,官方原生支持

2018-01-08 14:39:35 245

原创 Android 序列化 Serializable 和 Parcelable

什么是序列化序列化 (Serialization)将对象的状态信息转换为可以存储或传输的形式的过程。在序列化期间,对象将其当前状态写入到临时或持久性存储区。以后,可以通过从存储区中读取或反序列化对象的状态,重新创建该对象。二进制序列化保持类型保真度,这对于在应用程序的不同调用之间保留对象的状态很有用。例如,通过将对象序列化到剪贴板,可在不同的应用程序之间共享对象。您

2018-01-08 09:38:28 223

原创 Android UI层的三种框架模式-MVC、MVP、MVVM

MVCMVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写。调用关系数据关系View 接受用户交互请求View 将请求转交给ControllerController 操作Model进行数据更新数据更新之后,Model通知View更新数据变化View 更新变化数

2018-01-07 21:18:32 1989

转载 Android 设计模式 之 代理模式

代理模式介绍代理模式(Proxy Pattern)也称为委托模式,是结构型设计模式的一种,代理模式在各类开发中运用的相当广泛,不论是j2ee,android还是ios,都能看到它的身影,所以说设计模式无处不在。代理模式的定义:为其他对象提供一种代理以控制这个对象的访问。通俗一点:找别人做你想做但是做不了的事情。代理模式的UML类图,如图:角色介绍:

2018-01-07 14:12:01 210

转载 Android 设计模式 之 观察者模式

观察者模式介绍观察者模式是一个使用率非常高的模式,它最常用的地方就是GUI系统、订阅–发布系统。因为这个模式的一个重要作用就是解耦,将观察者和被观察者解耦,使得它们之间的依赖性更小,甚至做到毫无依赖。观察者模式的定义:定义对象间一种一对多的依赖关系,使得每当一个对象改变状态时,则所有依赖于它的对象都会得到通知并且自动更新。观察者模式的UML类图,如图角色介绍

2018-01-07 14:08:42 178

转载 Android 设计模式 之 建造者模式

一 Builder模式介绍及使用场景Builder模式是一步一步创建一个复杂对象的创建者模式,它允许用户在不知道内部构建细节的情况下,可以更精细地控制对象的构造流程。该模式是为了将复杂对象的过程和它的部件解耦,使得构建过程和部件的表示隔离开来。因为一个复杂的对象有很多大量组成部分,如汽车,有车轮、方向盘、发动机,还有各种小零件,如何将这件部件装配成一辆汽车,这个装配过程很漫长,也很

2018-01-07 13:03:19 167

转载 Android 设计模式 之 单例模式

一 单例模式介绍及它的使用场景单例模式是应用最广的模式,也是我最先知道的一种设计模式,在深入了解单例模式之前,每当遇到如:getInstance()这样的创建实例的代码时,我都会把它当做一种单例模式的实现。其实经常使用的图片加载框架ImageLoader的实例创建就是使用了单例模式,因为这个ImageLoader中含有线程池、缓存系统、网络请求,很消耗资源,不应该创建多个对象,这时候就需要

2018-01-07 12:50:30 150

原创 Activity 启动模式

启动 Activity 分为 显示调用和隐式调用。显示调用需要明确地指定被启动对象的组件信息,包括包名和类名,而隐式调用则不需要明确指定组件信息。Activity的LaunchMode4种启动模式:standard、singleTop、singleTask、singleInstance1、standard 标准模式:每次启动一个Activity都会重新创建一个新的实例,

2018-01-06 21:41:18 189

原创 Activity 生命周期两三事

典型情况下的生命周期Activity生命周期基本切换过程,如图需要说明的是:1、当用户再次回到原 Activity 时,回调如下:onRestart -> onStart -> onResume2、从Activity A 启动 Activity B,如果 B 是透明主题,A 的 onStop 不会回调场景:假设当前Activity为A,如果这时用户打开一个新Ac

2018-01-06 21:36:33 236

转载 Java 泛型

什么是泛型《Java 核心技术》中对泛型的定义是:“泛型” 意味着编写的代码可以被不同类型的对象所重用。可见泛型的提出是为了编写重用性更好的代码。泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。 比如常见的集合类 LinkedList:public class LinkedList extends AbstractSequent

2018-01-05 17:57:14 172

原创 自定义控件:垂直轮播的小贴士Banner,仿 淘宝app的“淘宝头条”

VerticalBanner现在很多App都有2行的文章小贴士功能,垂直方向轮播展示 文章标题。效果图使用方法Gradle配置1. 在project的build.gradle添加如下代码allprojects { repositories { ... maven { url "https://jitpa

2017-11-22 20:53:04 849

原创 自定义ViewPager,可垂直、水平滑动,支持循环展示

该控件支持水平、竖直方向滑动,并可循环展示。垂直滑动效果图使用方法Gradle配置1. 在project的build.gradle添加如下代码allprojects { repositories { ... maven { url "https://jitpack.io" }

2017-11-21 19:37:07 1212

原创 Android 引入Airbnb Lottie框架后,报错Error inflating class com.airbnb.lottie.LottieAnimationView

依赖Lottie 后compile 'com.airbnb.android:lottie:2.0.0-beta4'添加LottieAnimationView控件<com.airbnb.lottie.LottieAnimationView android:id="@+id/animation_view" android:layout_width="wrap_content

2017-11-16 04:15:19 4754 1

原创 Android Studio 使用config.gradle 管理依赖库

在project根目录下创建一个config.gradle,将一些配置信息及第三方依赖统一管理。ext { android = [ compileSdkVersion : 25, buildToolsVersion : "26.0.2", applicationId : "c

2017-11-15 15:39:58 1359

转载 Android 解决65535的限制

原因剖析:在Android系统中,一个App的所有代码都在一个Dex文件里面。Dex是一个类似Jar的存储了多有Java编译字节码的归档文件。因为Android系统使用Dalvik虚拟机,所以需要把使用Java Compiler编译之后的class文件转换成Dalvik能够执行的class文件。这里需要强调的是,Dex和Jar一样是一个归档文件,里面仍然是Java代码对应的字节码文件。当And

2017-11-09 17:58:32 474

原创 Android Studio 3.0 升级 配置修改详解

更新完Android Stuido 3.0 稳定版之后,打开项目会收到如下提醒谷歌强烈建议我们更新Android Gradle Plugin 3.0 和 Gradle 4.1,所以我就习惯性的点击了Update。  结果……导致了一系列的修改。1、Flavor Dimensions 配置项目中用了多渠道,3.0之前配置多渠道:productFlavors配置

2017-11-01 18:33:34 20415 3

原创 Error:Execution failed for task ':app:compileDebugJavaWithJavac' 根本解决方法

碰到这个异常,很懵逼查找了各种解决方案,都不对症。最后发现,造成这种异常的原因有很多。具体的还是要去终端编译,查看到底是什么地方出错了,然后具体问题具体分析。终端进入项目的根目录,然后输入命令./gradlew compileDebugJavaWithJavac --stacktrace最终定位到错误警告: 无法找到类型

2017-10-31 19:19:44 21735

原创 Mac安装Tensorflow,运行项目报错: module compiled against API version 0xa but this version of numpy is 0x9

1、安装Tensorflow$ sudo easy_install pip$ sudo easy_install --upgrade six$ sudo pip install tensorflow当前最新的tensorflow版本1.2.12、创建第一个Tensorflow项目 Hello World运行报错:module compiled against

2017-08-09 19:10:46 11423

原创 Android Universal Image Loader 显示圆角图片,CenterCrop失效

Android Universal Image Loader是当前使用比较多的图片加载工具类,可以非常好的“一站式”解决图片下载、压缩、存储、缓存、显示等问题。并且提供 自定义显示图片的接口类BitmapDisplayer,可以自定义图片展示样式。不过,如果你要展示圆角图片,会发现图片的scaleType失效了,图片拉伸失真。原来,圆角图片RoundedBitmapDi

2017-06-21 11:40:33 1555 1

原创 GestureDetector源码分析

/* * Copyright (C) 2008 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * Yo

2015-06-02 17:45:43 913

原创 Android-下拉框,利用AlertDialog来实现

利用Spinner可以实现下拉框,效果如下其实完全可以用AlertDialog来实现。AlertDialog有一个方法:public AlertDialog.Builder setAdapter (ListAdapter adapter, DialogInterface.OnClickListener listener)  可以很自然的联想到,左边是对应的list数据a

2012-10-19 14:44:39 3426

仿淘宝头条轮播滚动,Gradle配置方便使用

仿淘宝头条轮播滚动,Gradle配置,方便使用。具体使用方法请参考 http://blog.csdn.net/chenlin1989/article/details/78608212

2017-11-23

在win7下建立wifi热点,可用于安卓手机共享网络

该工具可以在win7下建立wifi热点,共享网络,特别适用于拨号宽带上网的网络环境。

2013-02-13

模仿QQ动态特效的tab实现

模仿QQ动态特效的tab实现。模仿QQ动态特效的tab实现

2011-11-14

FlingGallery模仿墨迹天气重定义的Gallery控件

模仿墨迹天气重定义的Gallery控件,非常好用。

2011-11-14

ActivityGroup的小Demo

ActivityGroup示例,作为demo

2011-10-20

MyEclipse 6 Java EE 开发中文手册

快速入门Eclipse,少走弯路,捷径 MyEclipse 6 Java EE 开发中文手册

2009-08-07

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除