自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(81)
  • 资源 (4)
  • 收藏
  • 关注

原创 SocialSdk-快速接入登录分享

Easier 、Lighter 、 More Business-Oriented;以更简单、更轻量、更加面向业务需求为设计目标,提供 微博、微信、QQ、Tim、QQ 轻聊版、钉钉 的登陆分享功能支持;项目地址 : GitHub - SocialSdkLibrary博客地址 :快速接入微信微博QQ钉钉原生登录分享

2019-01-02 10:12:29 812

原创 Android WebView 详解

文章首发于我的个人博客网站-查看原文本文记录 Android 中 WebView 控件的相关使用,不断完善中…主要包括:基本属性的配置WebView 缓存相关内容Java 与 Js 的交互WebView 打开本地应用(支付宝等)加载网络链接,本地 sd 卡路径,assert 目录路径的方法WebView 支持下载等其它一些内容基本配置汇总汇总的记录一下 WebView 的配置...

2017-07-15 12:55:37 704

原创 Android WebView 详解

本文记录 Android 中 WebView 控件的相关使用,不断完善中…主要包括:基本属性的配置WebView 缓存相关内容Java 与 Js 的交互WebView 打开本地应用(支付宝等)加载网络链接,本地 sd 卡路径,assert 目录路径的方法WebView 支持下载等其它一些内容基本配置汇总汇总的记录一下 WebView 的配置方法,重

2017-07-15 12:53:19 1524

原创 Android合成Gif

去我的博客网站-查看原文本文介绍在 Android 平台下合成 GIF 的方法,查阅资料的过程中发现大致有两种方案。使用 giflen (一个 C 的合成 gif 的库) 进行 gif 合成。使用 java 层的 GifEncoder、LZWEncoder、NeuQuant 来进行 gif 合成。当然二者都是基于 LZW 算法,简单测试的结果是,速度上差不多,由于对 C 不是很擅长,因此我选...

2017-07-13 20:33:53 860

原创 AndroidStudio升级gradle插件版本到2.3.1异常

AndroidStudio升级gradle插件版本到2.3.1之后不能运行了,提示MultiDex找不到,由此引发了很多问题。开始升级插件版本升级到2.3.1,配置project / build.gradleclasspath "com.android.tools.build:gradle:2.3.1"gradle版本升级到3.3,配置project / gradle / gradle-wrappe

2017-05-26 21:12:30 1683

原创 自定义控件九宫格滑动解锁

前言最近想给自己做的的app添加一个滑动解锁的功能,用的是乐视的手机,就模仿它的效果实现.视频演示一下效果LockPoint实体每个点是一个实体(LockPoint)用来存储这个点的所有信息,包括点的物理位置(x,y)和点的index位置(0-8)class LockPoint { // 点的位置 0-8 int index; // 点的x,

2016-11-28 22:50:49 1080

原创 Android事件交互

Android事件机制理解

2016-11-28 18:56:01 634

原创 快速实现Fragment切换功能

前言一个app首页通常是使用Activity + Fragment的形式展示,控制Fragment的显示和隐藏基本有两种实现方法ViewPager , 比如微信 , 优势是手势操作更加方便,官方提供了FragmentPagerAdapter可以很方便帮助我们实现数据加载(Fragment要使用懒加载的方式,避免浪费资源),劣势就是当你的第一个Fragment中已经使用了ViewPager,两层套一

2016-11-05 16:47:26 3904

原创 TabLayout的使用详解

TabLayout是用来实现tab导航的控件,放在`android.support.design.widget`包里面,使用它可以很简单有很完美的结合`ViewPager`或者`FragmentManager`实现tab导航,并且实现与ViewPager的联动等功能。 本文主要介绍了: 1. TabLayout的基本特性。 2. 如何与ViewPager联动。 3. 如何自定义TabLay

2016-11-05 11:49:12 5010

原创 高仿QQ微信相册

前言结合微信和QQ相册的一些特点实现系统相册的选择,这篇博客主介绍了开发过程中遇到的点,记录一下。ContentProvider中数据的获取微信的浮动相册照片时间显示微信的dialog选择相册QQ的滑动选中照片QQ的图片角标数字显示及更新界面的相关优化演示视频防QQ微信相册选择GitHubGitHub源代码推荐阅读仿QQ相册RecyclerView滑动选中仿QQ相册Recycl

2016-11-02 18:02:11 1324

原创 EditText动态更改背景

前言如下图,实现了一个类似TextInputLayout的效果,当然还是有点差异。更高版本的EditText已经默认是这样的效果了,只是不能改变颜色。EditText背景设置很简单,使用android:background=""属性即可,本文介绍的是使用selector实现EditText背景自定义转换的效果。代码比较简单,直接上代码啦,主要是用了一个selector -> layer-lis

2016-10-31 15:23:08 2428 2

原创 仿QQ相册RecyclerView滑动选中进阶

仿QQ实现手指滑动选中图片

2016-09-08 16:56:14 1909 5

原创 仿QQ相册RecyclerView滑动选中

仿QQ相册滑动选中,自定义控件监听事件,回调手指触摸到哪个item

2016-09-06 23:29:13 2419 4

原创 保存照片和视频到相册显示

照片和视频保存到本地的方法大致都是通过流的方式写入文件里面就可以达到保存到文件夹的目的,但是你保存到文件夹的资源却不一定能够在相册显示出来,只能翻看文件管理。 怎么能够将保存到本地的照片视频显示在系统相册中,最常用的方式是发送广播扫描的方式来通知系统扫描文件夹,但是这种方式经常不起作用,根本原因在于,向系统发送广播时系统只会去扫描系统资源的相册,如果你保存的文件夹是自己建立的,那么你发广播时系统是不会扫描到的。

2016-08-23 14:03:07 19882 4

原创 Android 6.0权限动态申请

Android 6.0权限动态申请1.minSdkVersion 15minSdkVersion指的是你的应用可以兼容到的最低版本,比如你只使用了2.X的API,那minSdkVersion就可以尽量小,以适配更多机型,小于minSdkVersion的机型将无法安装。2.maxSdkVersion 23maxSdkVersion指的是你的应用可以支持到的最高版本,高于这个版本的机型将不能安装应用,但

2016-08-17 11:46:35 2822

原创 将自己写的库发布到JitPack

将自己写的库发布到JitPack1.在使用Jcenter发布库代码时,需要先上传到Bintray网站,比较麻烦,不过我之前已经给出了简化的方案,根据这篇文章发布自己的库到JCenter可以很快的配置好项目。本文介绍另外一种发布自己的库代码的方式,使用JitPack发布代码,简单,方便。2.AndroidStudio创建项目时没有默认生成JitPack的依赖,当使用库时需要添加如下依赖reposito

2016-08-12 23:47:02 2834

原创 Python普通方法、静态方法、类方法

Python普通方法、静态方法、类方法今天尝试了一下Python普通方法、静态方法、类方法的区别# -*-coding:utf-8-*-# 普通方法,类方法,静态方法的区别__metaclass__ = typeclass Tst: name = 'tst' data = 'this is data' # 普通方法 def normalMethod(self, nam

2016-08-11 10:31:57 25057 5

原创 Python Json相关

Python Json相关用到了一些Json的操作,整理如下,后续更新# -*-coding:utf-8-*-import jsonfrom httptst.Singleton import singleton@singletonclass JsonHelper(object): name = 'json helper' def convert_to_builtin_type(o

2016-08-11 10:08:09 379

原创 Python实现单例

Python 实现单例在网上查到很多方式,选择一种比较pythonic的方式def singleton(cls, *args, **kwargs): instances = {} def _singleton(): if cls not in instances: instances[cls] = cls(*args, **kwargs)

2016-08-11 10:04:56 1307

原创 Android添加快捷方式

Android添加快捷方式

2016-07-29 18:03:52 706

原创 python发送get/post/put/delete请求

Python 发送get和post请求最简单的方式,记录一下get#! /usr/bin/env python# coding:utf-8import urllibimport urllib2# get请求测试url_get = 'http://127.0.0.1:3000/lucky?limit=3'req_get = urllib2.urlopen(url_get)print re

2016-07-20 22:26:00 11441 1

原创 带有泛型的类如何继承

带有泛型的类如何继承public class GenericityTst { public class Temp { } //具有泛型的ClassA public class ClassA<T>{ T t; } //继承泛型 public class ClassB<T> extends ClassA<T>{ T t;

2016-07-20 17:33:35 9694 3

原创 在AS中使用lambda表达式

在AS中使用lambda表达式Lambda表达式从Java8开始支持,简化了书写,同时理解上难度也加大了,不过熟悉了就会好很多啦。在AS中配置使用Lambda1.在project/build.gradle中配置classpath 'me.tatarka:gradle-retrolambda:3.2.5'2.在project/app/build.gradle顶部配置插件apply plugin: 'm

2016-07-18 16:21:54 2019

原创 ORM框架-GreenDao

ORM框架-GreenDao链接官网 -> http://greendao-orm.comGitHub -> https://github.com/greenrobot/greenDAO性能开始1.GreenDao采用的是用java代码直接生成Bean(实体)和Dao(Data Access Object数据访问对象)的方式,都不用自己写实体了,也是一大好处,不过这也造成了理解上的难度,我刚开始用

2016-07-12 11:08:46 528

原创 打开手机自带的应用市场

打开手机应用市场

2016-07-01 11:09:24 1186

原创 Node.js基础1

Mac下安装Node.js1.基本工具的配置检测xcode是否安装$ xcode-select -p/Applications/Xcode.app/Contents/Developer检测python和ruby版本$ python -v$ ruby -v安装homebrew$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent

2016-05-18 08:49:36 638

原创 Mac安装Mongdb

Mac安装MongDBMac安装MongDBNoSQL 简介NoSQLNoSQL Not Only SQL 意即不仅仅是SQL什么是MongoDB MongoDB 是由C语言编写的是一个基于分布式文件存储的开源数据库系统在高负载的情况下添加更多的节点可以保证服务器性能 MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案 MongoDB 将数据存储为一个文档数据结构由键值k

2016-05-18 08:38:50 769

原创 Python Django服务器搭建初体验

Python Django服务器搭建初体验1.安装的部分工具,我是在Mac下使用,其他的平台自己搜索一下如何安装。现在默认你已经安装了Python环境,我的是Python2.72.安装pip包管理器pip包管理器是python下安装模块的工具$ curl -O https://raw.github.com/pypa/pip/master/contrib/get-pip.py$ [sudo] pyt

2016-05-14 09:40:34 909

原创 Python基础1

写在前面从今天开始学习python-2016-1-21;问题汇总1.我使用的Pycharm编译器,刚开始就遇到了一个问题,不能输入中文,解决办法就是在文件头部添加代码#-*- coding:utf8 -*-Python基础数据类型# 列表(同类型数据构成的数组)list = [1,2,3,4]# 元组(数据类型可以不同,简单方便的数据聚合,类似结构体)tuple = (1,"second",1

2016-05-12 08:35:46 521 1

原创 Swift基础进阶

Swift可选型可选型的概念//数据类型+?将会构成一种新的类型,可选型,String?为字符串可选型,,在swift中,空的概念略有不同,java中,如果一个对象变量,没有指向,为null;一个int类型的变量如果没有初始化,值为0,null和0 意为没有,在swift中,空是一种完全独立的数据类型,nil的位置和Int,String的地位是一样的,他不是对象或者数据的一种特殊状态,而是一种新的对

2016-05-05 18:29:38 652

原创 Swift基础语法

Swift基础语法Swift基础语法写在前面从今天开始学习Swift2016-3-16先学习简单语法不涉及详细APISwift 30已经移除i方法请使用i1快捷键一些琐碎常量和变量数组和字典控制流forifswithwhilerepeatwhile操作符可选值操作符范围操作符强制解包操作符函数和闭包简述一个简单函数返回多个值可变长度参数函数函数嵌套定义

2016-05-05 18:27:43 450

原创 webview和原生应用交互

webview和原生应用JS交互定义关联的对象设置关联类在JS代码中调用Android代码在Android中调用JS代码webview和原生应用JS交互定义关联的对象public class Bridge2Js { private Activity activity; public Bridge2Js(Activity activity){ this.activi

2016-04-28 10:53:30 1680

原创 防止app闪白屏或闪黑屏

防止app闪白屏或闪黑屏使用透明Theme解决,原理就是虽然程序启动了,但是没有显示出来,你看到的还是桌面,目前主流的产品都是用的这种方式,比如QQ,微信。缺点就是等待的时间长,造成程序启动慢的感觉。<style name="Theme.AppStartUseTransparent" parent="Theme.AppCompat.NoActionBar"> <item name="

2016-04-18 17:39:25 1009

原创 AndroidStudio统计代码行数

1。使用插件Statistic-2.6.1.jar,下载之后,在settings界面输入plugin,选择从磁盘导入就可以了。2。Linux 和 Mac可以使用下面的命令,但是只会统计文件中代码行数,三方的库之类的是不能统计的。上面的插件可以统计find . "(" -name "*.java" -or -name "*.xml" ")" -print | xargs wc -l

2016-04-12 18:45:18 3193

原创 基于装饰者模式,重构RecyclerView快速适配

基于装饰者模式,实现RecyclerView快速适配,添加Header和Footer,上拉刷新等功能代码和库的相关原理和使用方法见这里今天想给这个库添加一个上拉加载更多的功能,但是遇到了一个很明显的问题,就是RvQuickAdapter的功能越来越多,功能越来越复杂,当想简单的使用RvQuickAdapter时涉及了很多的代码。所以决定重构一下这个库的代码,并把版本升级到了2.0.0新版在原来快速适

2016-04-12 17:09:30 833

原创 RecyclerView添加Header和Footer的基本原理

RecyclerView添加Header和Footer的基本原理转载注明出处csdn chendong_ 更详细的封装及代码说明采用的基本原理就是Header和Footer作为RecyclerView的一个Item,只是显示的方式特别一点,ListView实际也是这么做的所以添加了Header之后,数据的位置会错乱。由于使用不同的LayoutManager时显示效果也不一样, 所以针对不同的Lay

2016-04-12 00:05:34 2717 1

原创 Android简化获取控件

Android简化获取控件转载注明出处chendong_ 这只是一个工具类,现在有很多使用注解绑定控件的三方库,很强大,也很简单,这里使用的工具类仍然使用findViewById()的方法,只是起到了简化获取控件的过程。优点就是方法数少,可以少定义变量,特别适用于需要定义大量控件的情景。简单使用//初始化BindViewHelper viewHelper = new BindViewHelper(

2016-04-05 18:47:03 637

原创 Android自定义下方导航Tab

Android自定义下方导航Tab转载注明出处chendong_ 基本大多数应用都会使用底部Tab的导航方式,实现底部Tab导航的方式很多,之前有TabHost,现在有TabLayout,但是TabLayout不能添加图片,之前一直用的是LinearLayout嵌套的方式或者RadioGroup,但是都相对麻烦,所以自定义了一个控件可以更方便的实现底部tab导航。TabHolder更新日志1.0.1

2016-03-29 17:16:44 1498

原创 汉字转换拼音

汉字转换拼音进行字符串拼配,比较,排序的时候使用汉字很不方便,分享一个汉字转换英文的工具。Api调用PinyinHelper.get().getPinYin("你好"));PinyinHelper.get().getPinYin("你bSfb");PinyinHelper.get().getPinYin("JHHihubbb");核心方法//核心方法 /** * 唯一公开的方法

2016-03-28 22:56:06 2381 3

原创 Android系统分享的注册和调起

Android系统分享的注册和调起现在有很多第三方分享平台,比如友盟,shareSdk等,其实我们在相册长按图片点击发送/分享就会调起很多应用,让你选择可以分享到很多平台,比如QQ,微信等,相对使用第三方要简陋一点,但是因为是系统的集成起来也相对简单,不需要导入各种包。。注册系统的分享,你可以在用户点击分享/发送按钮时调起你的应用,使用户可以将图片和文字分享到你的App.//在manifest注册A

2016-03-25 14:54:43 3823

合成gif封装,基于jni

gifflen jpg合成gif c语言 jni

2016-03-09

libgifflen.so

合成好的libgifflen.so

2016-03-09

gifflen_jpg合成gif_c语言

C语言编写的android合成gif函数库,基于gifflen

2016-03-09

adapter.rar

单类型抽象适配器 多类型抽象适配器 实现分类适配 简化适配器编写 使用文档

2015-09-30

空空如也

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

TA关注的人

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