自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(90)
  • 资源 (18)
  • 收藏
  • 关注

原创 认识ProtoBuf

Protocol buffers 是google开发的一种数据描述语言,类似于 XML 能够将结构化数据序列化,可用于数据存储、通信协议等方面。相比于现在流行的 XML 以及 JSON 格式存储数据,通过 Protocol Buffers 来定义的文件体积更小,解析速度更快 ...

2022-08-12 18:09:41 354 1

原创 浅谈贝塞尔曲线

浅谈贝塞尔曲线前段时间做了一个手写板功能的东西,其中手写部分用二次贝塞尔曲线完成,今天就来总结一下贝塞尔曲线在Android中的应用,先简单介绍各阶贝塞尔曲线的原理,然后实现通过贝塞尔曲线实现波浪线功能,感兴趣的同学继续看下去吧!概念在数学的数值分析领域中,贝塞尔曲线(英语:Bézier curve,亦作“贝塞尔”)是计算机图形学中相当重要的参数曲线。更高维度的广泛化贝塞尔曲线就称作贝兹曲面...

2019-08-05 22:20:02 3395

原创 Kotlin 初体验

Kotlin 初体验Kotlin也是基于JVM设计的编程语言,相对Java来说,Kotlin在编写代码时有如下优势:代码简洁高效、函数式编程、空指针安全、支持lambda表达式、流式API等。kotlin配置在android studio 3.0以前需要下载kotlin插件 新建一个项目,新建完成后,点击code —> convert java file to kotlin...

2018-03-18 14:25:18 853 1

原创 dva 框架介绍

dva 是基于 redux 最佳实践 实现的 framework,简化使用 redux 和 redux-saga 时很多繁杂的操作 数据流向数据的改变发生通常是通过用户交互行为或者浏览器行为(如路由跳转等)触发的,当此类行为会改变数据的时候可以通过 dispatch 发起一个 action,如果是同步行为会直接通过 Reducers 改变 State ,如果是异步行为(副作用)会先触发...

2018-02-28 23:00:32 18128

原创 android 单元测试

单元测试的重要的和必要性这里不在强调,本文介绍几个常用的单元测试的框架JUnit4JUnit4是一个java的单元测试框架,多数Java的开发环境都已经集成了JUnit作为单元测试的工具,android studio默认继承了JUNit4testImplementation 'junit:junit:4.12'JUnit4主要是通过注解的方式来识别测试方法,下面介绍几个常用

2018-02-05 10:54:59 779

翻译 Fragment Transactions & Activity State Loss

原文链接StackOverflow的一个问题:java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState at android.support.v4.app.FragmentManagerImpl.checkStateLoss(FragmentManager.java:1341)

2016-08-10 11:28:09 2493 3

原创 Android自定义控件:如何使view动起来?

本文发表于CSDN《程序员》杂志2016年8月期,未经允许不得转载!摘要Android中的很多控件都有滑动功能,但是很多时候原生控件满足不了需求时,就需要自定义控件,那么如何能让控件滑动起来呢?本文主要总结几种可以使控件滑动起来的方法实现其实能让view动起来的方法,要么就是view本身具备滑动功能,像listview那样可以上下滑动;要么就是布局实现滑动功能,像ScrollView那样使内测的子v

2016-08-07 17:39:11 3891 9

原创 DrawerLayout 源码分析

简介DrawerLayout充当窗口内容的顶层容器,允许”抽屉”式的控件可以从窗口的一边或者两边垂直边缘拉出使用抽屉的位置或者布局可以通过android:layout_gravity子view的属性控制从那边拉出,left/start代表从左边拉出,right/end代表从右侧拉出,需要注意的是只能有一个抽屉控件从窗口的垂直边缘,如果布局中每个垂直窗口有多于一个抽屉控件,将会抛出异常根布局使用Dra

2016-07-17 23:31:49 10690 8

原创 在已有的项目中引入react native

如果新建一个react native项目,在Android中写native的话是很容易的,一般情况下项目已经存在,如何在已经存在的app中引入react native呢?Prepare your app首先在你的app中的build.gradle引入react native的jar包compile "com.facebook.react:react-native:+"在项目的build.gradle

2016-07-05 14:32:05 4401 4

翻译 React Native 中 component 生命周期

React Native中的component跟Android中的activity,fragment等一样,存在生命周期,下面先给出component的生命周期图getDefaultPropsobject getDefaultProps()执行过一次后,被创建的类会有缓存,映射的值会存在this.props,前提是这个prop不是父组件指定的 这个方法在对象被创建之前执行,因此不能在方法内调用th

2016-07-03 03:48:00 76906 7

原创 TextureView 使用

简介TextureView可以用于展示内容流. 例如像视频或者OpenGL场景的内容流. 内容流可以来自本应用程序以及其他进程TextureView只能应用于开启硬件加速的窗口不像SurfaceView那样,TextureView不会创建一个单独的窗口但是可以作为一个普通的View. 不同的是TextureView可以移动,平移,动画等. 例如,通过调用myView.setAlpha(0.5f)将T

2016-06-16 12:22:35 7443

原创 设计模式之单例

设计模式之单例单例模式:确保一个类只有一个实例并提供一个对它的全局访问指针什么是线程安全?如果你的代码所在的进程中有多个线程在同时运行,而这些线程可能会同时运行这段代码。如果每次运行结果和单线程运行的结果是一样的,而且其他的变量的值也和预期的是一样的,就是线程安全的。 或者说:一个类或者程序所提供的接口对于线程来说是原子操作,或者多个线程之间的切换不会导致该接口的执行结果存在二义性,也就是说我们不

2016-06-05 21:40:12 3739 3

原创 初识React Native

初始React Native简介Facebook 在 React.js Conf 2015 大会上推出了基于 JavaScript 的开源框架 React NativeReact Native 结合了 Web 应用和 Native 应用的优势,可以使用 JavaScript 来开发 iOS 和 Android 原生应用。在 JavaScript 中用 React 抽象操作系统原生的 UI 组件,代替

2016-06-03 18:41:49 2292 2

原创 android LRUCache源码分析

LRU(Least Recently Used)最近最少使用算法原理缓存保存了一个强引用(Android 2.3开始,垃圾回收器更倾向于回收弱引用和软引用,软引用和弱引用变得不可靠,Android 3.0中,图片的数据会存储在本地的内存当中,因而无法用一种可预见的方式将其释放)限制值的数量. 每当值被访问的时候,它会被移动到队列的头部. 当缓存已满的时候加入新的值时,队列中最后的值会出队,可能被回收

2016-05-23 17:25:16 2777 2

原创 android LRUCache解析

android LRUCache解析LRU(Least Recently Used)最近最少使用算法原理缓存保存了一个强引用限制值的数量. 每当值被访问的时候,它会被移动到队列的头部. 当缓存已满的时候加入新的值时,队列中最后的值会出队,可能被回收LRUCache内部维护主要是通过LinkedHashMap实现这是一个安全的线程,多线程缓存通过同步实现
使用默认情况下,缓存的大小是由值的数量决定,重

2016-05-23 00:42:26 4373 1

翻译 Bitmap API

1.简介Bitmap是Android系统中的图像处理的最重要类之一,通过bitmap可以获得图片的基本信息,以及对图片进行一系列的操作2.APIpublic boolean compress(CompressFormat format, int quality, OutputStream stream)把位图的压缩信息写入到指定的输出流.如果返回true,位图可以通过适当的输入流重建到BitmapF

2016-05-09 00:58:22 6164 1

原创 Android中的RxJava,Retrofit,MVP的使用

RxJava,Retrofit,MVP都是近几年讨论的比较热门的话题,我们也来凑个热闹!本博不展开讨论,分别讨论的文章有很多,后续有时间给出RxJava,Retrofit的源码分析先来说一下MVP(Model View Presenter)熟悉MVC结构的应该很容易理解MVP,这里先给出MVP的图解model具体业务逻辑处理的实现view负责显示数据、提供友好界面跟用户交互presenter负

2016-04-25 01:03:51 3666 2

原创 Android 5.0状态栏和导航栏

Material Design推出之后,app中也开始沿用这种风格今天来说一下状态栏颜色设置,在4.4的时候推出了透明状态栏和导航栏,在不使用第三方库的情况下,4.4还是没有完全解决存在actionbar的问题,于是乎,5.0推出了比较给力的方式使用方式很简单了,并且官方也给出了文档,先给出一张图片,方便大家了解其中的属性大家可以根据以上图片设置自己想要的引入v7包不引入v7包引入v7包的话,

2016-04-10 22:46:24 2631

原创 浅谈handler

今天就来谈一下面试中经常被问及的handlerhandler是什么?handler是Android提供用来更新UI的一套消息机制,也是一套消息处理的机制(发送和处理消息)handler原理handler负责消息发送,looper负责接收handler发送过来的消息,并把消息发送给handler,messageQueue存储消息的容器这里先说明一下ThreadLocal,主要在线程中保存变量信息,主要

2016-03-08 22:06:14 3905 5

原创 Android 之 图片压缩

在上一篇文章中(Android之图片变换)主要说明了bitmap的使用,当然其中也包括一点图片压缩的内容,但是没有详细描述,这篇文章就来阐述一下平时Android使用的图片压缩技术从图片的压缩方式区分:质量压缩和尺寸压缩。质量压缩是在保持像素的前提下改变图片的位深及透明度等,来达到压缩图片的目的,经过它压缩的图片文件大小会有改变,但是导入成bitmap后占得内存是不变的。因为要保持像素不变,所以它就

2016-02-27 17:24:48 2772 3

原创 Android 之 图片变换

说到图片,第一反映就是bitmap,那就先来认识一下bitmapBitmap是Android系统中的图像处理的最重要类之一。用它可以获取图像文件信息,进行图像剪切、旋转、缩放等操作,并可以指定格式保存图像文件Bitmap实现在android.graphics包中。但是Bitmap类的构造函数是私有的,外面并不能实例化,只能是通过JNI实例化。这必然是 某个辅助类提供了创建Bitmap的接口,而这个类

2016-01-26 16:02:13 2822 4

原创 JS与Native交互

实现JS和Native有两种方式:shouldOverrideUrlLoading(WebView view, String url)js与java互相调用先来说一下第一种方式shouldOverrideUrlLoading(WebView view, String url)通过给WebView加一个事件监听对象(WebViewClient)并重写shouldOverrideUrlLoadin

2016-01-15 10:44:21 9555 6

原创 android 之 Camera

由于我刚入职现在的这家公司的时候,他们对涉及到图片的比较多,所以打算写一系列图片的文章,首先就从制造图片的地方开始写起–Camera如果你的app里面只是需要拍一张照片,只需要调用系统的照相机就可以满足你的需求了通过ACTION_IMAGE_CAPTURE调用系统的照相机intent.setAction(MediaStore.ACTION_IMAGE_CAPTURE);然后在通过startActiv

2015-12-28 10:16:57 3245 11

原创 Android 悬浮窗

iPhone有个很好用的白色圆点,今天就来研究下Android中的悬浮框,这里主要是实现一个快捷键的功能,当然也可以在悬浮框中做想做的事!悬浮窗的实现主要是通过WindowManager实现,当然WindowManager只是一个接口,想了解源码的同志们可以去看WindowManagerImpl,悬浮框主要是通过WindowManager中的addView,updateView,removeView

2015-12-20 22:09:27 4953 2

原创 android AndFix--热补丁框架

我正在参加CSDN的博客之星票选,如果你也喜欢我的文章的话,帮忙投我一票今天给大家带来阿里巴巴推出的AndFix框架首次给出大家这个框架的地址:https://github.com/alibaba/AndFix 对源码比较感兴趣的同学们可以自行研究代码AndFix介绍AndFix,全称是Android hot-fix。是阿里开源的一个热补丁框架,允许APP在不重新发布版本的情况下修复线上的bug。支

2015-12-14 16:42:23 7061 16

原创 Android activity任务栈

好久没写博客了,脑子都秀逗了,最近比较忙,整天睡不醒,还有私信我继续更新即时通讯的同伴们,近期可能没戏,但是我承诺的一定完成!任务栈,从它的名字我们就知道它有栈的特点『先进后出』,默认情况下activity的任务栈的名字就是你app的包名,当然,你也可以单独的为你的activity指定任务栈,通过修改TaskAffinity属性,当然不要指定成包名啦,否则跟没指定一样。任务栈分为前台任务栈和后台任务

2015-12-07 10:18:32 5442 5

原创 Android Theme and style

每家公司的app都有自己的统一的特色,这就涉及到theme和style,当然他们只不是仅仅为了这个特点存在,想activity的进入动画等都能通过theme和style实现,简单并且减少了代码数,熟练使用theme and style也能做出很炫的效果。what is theme ?主题是对整个应用中所有的Activity都起作用,或者对指定的Activity起作用 定义格式通常是改变

2015-11-15 20:49:59 3362 7

原创 Android 性能优化

上周四参加了MDCC大会的 Android,我比较关注的5R,做一个安静的app,图片缓存以及React Native For Android,其中很大一部分的内容都是讲的性能优化,后续还会给大家带来一篇React Native ,下面就来总结一下Android性能优化方面的内容!人类大脑与眼睛对一个画面的连贯性感知其实是有一个界限的,譬如我们看电影会觉得画面很自然连贯(帧率为24fps),用

2015-10-19 18:02:39 6255 22

原创 简述fragment(上)

Fragment是在Android 3.0 以后引入的,如果你想在3.0以前使用那就只能引入v4包了,它很好的解决了Android的碎片问题,尤其是在平板上更能显示出Fragment的优势.Fragment既然这么好,如何加载呢?一种方法可以直接使用fragment布局,静态加载,另一种动态加载,在我们的应用中很少用到Fragment的静态加载方法,所以我们这里只讨论Fragment的动态加载.

2015-09-28 09:46:56 3794 10

原创 android事件分发(二)

很早之前写过一篇android事件分发的博客,主要写的是它是如何分发的,具体很多原理的东西都没有涉及到,今天就从源码看android如何控制它的分发机制。 鉴于手机屏幕的限制,所以android选择了分层的方式布局,这就引出了今天的主题--事件分发

2015-08-31 11:40:00 3775 9

原创 Android自定义控件之乱涂

随着Android的不断壮大,你想要的很多控件在github上基本都能找到,对于爱折腾的我来说,闲暇之余更喜欢自己倒腾,之前博客有提到想研究图片这一块,今天就来折腾一下编辑图片.先来实现在一张图片上坐标注,也就是说我可以在一张图片上乱画 在一张图片上乱花,首先要有一张图片,然后要有只画笔实现乱花 先把图片放上:public class DrawPicture extends View{ p

2015-08-14 19:09:38 3176 8

原创 LeakCanary:简单粗暴的内存泄漏检测工具

几乎每个程序员在开发的过程中都会遇到内存泄漏,那么我们如何检测到app是否哪里出现内存泄漏呢?square公司推出了一款简单粗暴的检测内存泄漏的工具-- LeakCanary什么是内存泄漏?       内存泄漏是指由于疏忽或者错误造成程序未能释放已经不再使用的内存,内存泄漏不是指内存在物理上的消失,而是应用程序分配某段内存后,由于设计错误失去了对于这段内存的控制,因而造成内存的浪费。

2015-08-07 15:47:05 7788 14

原创 android继续探索Fresco

我们接着上文继续说,上篇博客中我们已经知道了Fresco怎么用,也知道了它的很多属性,但是很多时候xml文件是不能满足你的要求的,这就需要你在代码中动态的改变显示的内容,今天我们就来探索一下如何在代码中改变图片实现的状态和内容       前面我们已经使用过SimpleDraweeView这个控件了,显示图片的时候直接写了一个setImageURI(uri),Fresco不仅仅提供了这一个方法

2015-08-05 09:44:00 5043 13

原创 android 初识Fresco

Fresco是facebook推出的一款强大的图片加载的框架,这个框架出来一段时间了,前一段时间使用过了ImageLoader的框架,生命在于折腾,今天就来折腾一下Fresco这个强大的框架       1.配置环境        由于我用的是android studio所以这里就只是说一下android studio下如何配置,在强大的gradle,只需要一句话搞定,gradle会帮你下

2015-07-27 09:32:25 5954 16

原创 android XXXActivity和getApplicationContext()区别

从接触android起,到处都能看到context(上下文)的身影,查看源码之后你会发现,它只是个抽象类,具体实现都在ContextWrapper实现。当你去查看android的源码时,你会发现activity,service和application都继承自ContextWrapper,也就是说它们都是context的子类,那我们应该如何给context的赋值呢?很多时候在acitivit

2015-07-21 10:04:21 3642 3

原创 android 开源框架Universal-Image-Loader解析

最近要在公司分享东西,很多项目中用到Universal-Image-Loader这个开源框架,没有太多的进程调度,没有各种内存读取控制机制、没有各种异常处理,一起学习一下1.UIL原理a.UI:请求数据,使用唯一的Key值索引Memory Cache中的Bitmap。b.内存缓存:缓存搜索,如果能找到Key值对应的Bitmap,则返回数据。否则执行c。c.硬盘存储:使用唯一Ke

2015-06-27 16:21:47 2801 4

原创 Android之即时通讯(一)----环境搭建

最近脑子比较乱,还是静下来弄点东西心里比较踏实.在上一家公司也有接触过即时通讯,是用xmpp协议实现的,然后使用openfire服务器,拿来直接用,今天来研究一下环信实现即时通讯1.注册环信开发者账号并创建应用在环信官网上点击注册,跳转到环信管理后台注册页面,如下图:在注册页面中填写详细资料,如下图:企业ID,只限于数字,字母,横线,且不能以横线开头

2015-05-11 11:01:21 3092 5

原创 手把手教你配置Android studio

也许你以前用的是eclipse,现在as都出了这么长时间了,作为一个猿不能停滞不前啊,今天就直接用eclipse里面的东西来装as,follow me1.先从http://www.androiddevtools.cn/下载你要安装的as,这里我用的是1.2,你想用哪一个随意,最好用新的2.在bin下双击stdio,当然我的系统是64的,就需要点击stdio643.如果你的翻墙,

2015-04-23 15:54:01 2424 8

原创 Android横竖屏切换的生命周期

现在的手机默认情况下可以横竖屏切换,但是横竖屏切换的生命周期是怎么样的,今天就来说明一下,以防你开发的app横竖屏时game over1.在不做任何配置的情况下,加载一个activity的打印日志:切换屏幕时方向的打印日志:ps:我这里没出现什么横屏切换竖屏时执行两次oncreate,个人觉得不对2.配置android:configChanges="keyboard

2015-04-22 13:57:56 2370 3

原创 Android 获得手机屏幕大小

Android在自定义控件时,经常需要获得屏幕的宽高,每次都要写,不妨直接把他封装成工具类,直接拿来用,废话不说,直接上代码/** * */package com.example.customview;import android.content.Context;import android.util.DisplayMetrics;import android.view.Win

2015-04-16 17:48:03 2507 5

ContentProvider实现数据共享

以前用ContentResolver只是读取一下手机里的数据,现在公司做的东西也用不到提供给别人数据,今天主席提醒才想起来,我还跟这个传说中的四大组件之一不是很熟,今天就来研究一下它。详见个人博客:http://blog.csdn.net/elinavampire

2015-03-04

Android控件IP地址输入

上面的输入框写成了一个自定义组合控件,方便使用,说起来功能也挺简单的,主要是组合了四个EditText,然后判断EditText输入内容,还有就是对焦点的获取也是比较重要的详见本人博客http://blog.csdn.net/elinavampire

2015-01-06

实现类股票列表联动

首先上下移动通过scrollview实现左右侧同时滑动,右侧listview通过重写HorizontalScrollView实现右侧上下部分能够同时联动,详细内容见博客http://blog.csdn.net/elinavampire

2014-12-25

Android仿网易客户端实现抽屉式拖拉菜单界面

前面有写过一篇文章使用DrawerLayout实现Android仿网易客户端抽屉模式,昨天从群里看一哥们问抽屉式拖拉,从主界面的下方出现,而使用DrawerLayout实现的是覆盖掉主界面,今天我们就来实现一下主界面下方脱出菜单界面,详见博客http://blog.csdn.net/elinavampire?viewmode=contents

2014-12-19

上拉加载更多

博客地址http://blog.csdn.net/elinavampire/article/details/41545001 1.在listview中加入20条载入中的这个布局并隐藏 2.加入OnScrollListener监听,通过监听滚动事件,当滚动到最低端的时候,显示上面的布局 3.通过接口回调实现加载更多的功能 4.加载完数据时,通知listview加载结束,隐藏上面的布局文件

2014-11-27

Drawerlayout实现仿网易客户端抽屉

Drawerlayout实现仿网易客户端抽屉,详细见本人博客http://blog.csdn.net/elinavampire

2014-11-25

使用Gallery显示图片文字左右滑动并放大

第一次setOnItemSelectedListener 源码中的大致意思就是你使用选中功能的时候使用这个方法 我们这里实现的功能就是左右滑动图片 当滑动到哪一个时哪一个就放大对应的图片和文字 详细见本人博客http: blog csdn net elinavampire

2014-11-21

Android实现时间轴

通过使用listview实现类似于物流通知的时间轴

2014-11-20

Android自定义(三)实现圆盘的百分比设置

通过自定义属性实现控制圆盘的颜色和百分比

2014-11-19

ViewPageIndicator 和 ViewPager 仿网易新闻客户端Tab标签

Android 开源框架ViewPageIndicator 和 ViewPager 仿网易新闻客户端Tab标签

2014-11-18

实现界面导航

当下载一个app时,首次使用都会出现界面导航页面,今天就来写一个简单的页面导航,由于本人比较懒,随便找了一张图片,你可以按照你的想法换掉,废话少说,开始界面导航之旅 首先先写一个不到导航小圆点的界面导航,先单纯的使用viewPager实现界面滑动,然后加入小圆点即可实现常见的首次登陆出现导航页面

2014-11-17

自定义组合控件

实现最简单的自定义组合控件,实现最常见的app主界面

2014-11-10

EventBusDemo

这里写了一个广播的接受和发送,通过点击发送广播按钮发送一条广播,通过使用EventBus框架显示在界面上,详细情况见个人博客

2014-11-10

service使用及发送通知

service的使用,以及在绑定的service中发送通知

2014-11-03

将list数据通过LitePal保存到本地

具体描述看我的跟人博客吧,主要是本人工作主要是跟服务器交互,数据还是蛮多的,本代码主要实现解析好的list直接保存到本地数据库

2014-10-30

FragmentTabHost和viewPager实现仿微信主界面

FragmentTabHost和viewPager实现仿微信主界面,详见博客http://blog.csdn.net/elinavampire/article/details/40374011

2014-10-22

Android实现固定头部信息 挤压动画 类似通讯录

listview滑动过程中分组标题固定在上方,当第二个组滑上来时,第一个组才跟着上滑,下一个组固定,直到该组也滑出上边缘。

2014-10-17

网上书店java+mysql

实现简单的网上书店,基本功能都有,从登陆到订单完成,还有管理员登陆,发布新书的目录等,可能界面设计没有那么美观,见谅

2013-12-04

空空如也

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

TA关注的人

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