android
小杰921
简书:http://www.jianshu.com/users/077c44fa1dff/latest_articles
展开
-
android自定义钟表
android自定义钟表首先看看效果图先然后看看自定义的属性 <resources> <!--钟表整体颜色--> <attr name="color" format="color"/> <!--数字大小--> <attr name="numSize" format="dimension"/> <!--中心外圆半径--> <attr nam原创 2016-09-11 19:03:00 · 391 阅读 · 0 评论 -
疯狂java笔记之树和二叉树
树的概述树是一种非常常用的数据结构,树与前面介绍的线性表,栈,队列等线性结构不同,树是一种非线性结构1.树的定义和基本术语计算机世界里的树,是从自然界中实际的树抽象而来的,它指的是N个有父子关系的节点的有限集合。对于这个有限的节点集合而言,它满足如下条件: - 当N=0时,改节点集合为空,这课树也被称为空树 - 在任意的非空树中,有且仅有一个根(root)节点 - 当N>1时,除根节点以外的其原创 2017-08-28 16:41:18 · 347 阅读 · 0 评论 -
React Native与Android 原生通信
我们用React Native 做混合开发的时候免不了要原生和React Native 进行通信交互,这篇文章就是分享原生模块与JS传递数据的几种方式。总的步骤可以分为如下几点: 1. 在原生端定义Module类,继承ReactContextBaseJavaModule,在Module类里,定义交互的方法. 2. 定义Package类,继承ReactPackage,将Module实例添加到...原创 2018-04-27 13:50:58 · 367 阅读 · 0 评论 -
AsyncTask源码深入解析
最近想写一篇关于源码解析的文章,发现AsyncTask代码量不多,可里面的东西却是很值得学习的,所以故那这来“开刀”首先作为Android开发者我们对于AsyncTask想必比大家都知道吗,大白话讲就是在后台执行耗时任务再把最终的结果返回主线程更新UI。如下代码就它的模板代码:class MyAsyncTack extends AsyncTask<Void(传入参数),Strin...原创 2018-05-07 15:42:54 · 274 阅读 · 0 评论 -
解刨OkHttp框架
继AsyncTask,又把手术刀指向OkHttp,有时候解析源码会上瘾。因为源码里包含的东西仿佛就是组成计算机世界的砖头,水分,只要有这些东西,就可以保罗万物,无招胜有招。又说多了,开始吧首先okhttp的依赖是:compile 'com.squareup.okhttp3:okhttp:3.8.1'我就是根据这里的源码进行解析的。再来也很简单,就是最简单的OkHttp的同步和异...原创 2018-05-23 19:47:25 · 212 阅读 · 0 评论 -
刨解OkHttp之访问连接
因为OkHttp能讲的东西太多了,上一篇文章只是讲到了他的设计架构即责任链模式和异步多线程网络访问,这对于OkHttp只是冰山一角,对于一个网络请求框架,最重要的就是网络访问了,为此我们来说一下Okttp网络访问的一些细节。这个访问分为两个部分,一个部分是与服务器形成连接,另一个部分是与服务器进行交互。与服务器连接的是ConnectInterceptor拦截器,而与服务器交互的是CallSer...原创 2018-05-23 19:47:58 · 274 阅读 · 0 评论 -
刨解OkHttp之缓存机制
时间一晃而过,今天想给大家带来OkHttp的zuihou最后一篇文章,主要讲一下OkHttp的缓存机制。OkHttp的责任链中有一个拦截器就是专门应对OkHttp的缓存的,那就是CacheInterceptor拦截器。CacheInterceptor其对应的方法如下,我们就从这个方法讲起:public Response intercept(Chain chain) throws...原创 2018-07-16 09:29:24 · 541 阅读 · 0 评论 -
自定义View之雷达图
好久没有写过自定义的文章,这次重拾这方面的内容,从雷达图开始。首先看一下效果图: 这就是大概的效果图了,下面我们就一一讲解吧。首先为了看的懂,我会把所以变量贴出来,以防止看代码段的时候大家不知其意思:private Paint mBroadPaint = new Paint();//边private Paint mMarkEasePaint = new Paint();//数值...原创 2018-08-09 14:05:08 · 342 阅读 · 0 评论 -
制作支持View,图片轮播的Banner
之前有一个项目中有用到轮播,不过不是简单的轮播图片就完了,而是要轮播很多个View,一开始我的想法和大家一样在github在一个算了,哈哈,不过在试用了很多个项目之后都觉得不能完全满足我的需求,大部分还是针对于图片轮播的场景,所以是时候自己搞一个既支持图片,也支持各种自己定义的View,也支持fragment,同时也可以选择不同实现方式的指示器或者干脆去掉,适应个各种需求场景。 这就是他的效...原创 2018-09-07 11:31:09 · 377 阅读 · 0 评论 -
Android NestedScrolling机制
NestedScrolling机制现在在App的作用越来越重要,许多很漂亮的交互都是基于NestedScrolling机制进行完成的。NestedScrolling机制主要是能够让父View和子View在滚动时互相协调配合。其中有两个重要的类,分别是:接口类NestedScrollingParent(最新:NestedScrollingParent2)NestedScrollingChil...原创 2018-09-25 20:56:11 · 610 阅读 · 0 评论 -
NestedScrolling机制之CoordinatorLayout.Behavior实战
在上一讲中我们讲了NestedScrolling机制,其实android很多有些常用的控件都是支持NestedScrolling机制的,如RecyclerView,NestedScrollView等,public class RecyclerView extends ViewGroup implements ScrollingView, NestedScrollingChild2{}publ...原创 2018-09-28 20:41:44 · 294 阅读 · 0 评论 -
kotlin基础语法
最近在学kotlin,这是本人看菜鸟教程后所做的笔记,很多会内容和菜鸟教程重复,仅供参考基础语法包声明//类在包的位置package com.demo.mainimport java.util.*函数定义函数定义使用关键字 fun,参数格式为:参数 : 类型fun printSum(a: Int,b: Int){ println(a+b)}无返回值的函数publ...翻译 2018-10-18 17:10:52 · 178 阅读 · 0 评论 -
疯狂java笔记之常用的内部排序
排序的基本概念在计算机程序开发过程中,经常需要一组数据元素(或记录)按某个关键字进行排序,排序完成的序列可用于快速查找相关记录。排序概述排序是程序开发中一种非常常见的操作,对一组任意的数据元素(或记录)经过排序操作后,就可以把它们变成一组关键字排序的有序序列。假设含有n个记录的序列为{R1,R2,…,Rn},其相应的关键字序列为{K1,k2,…,kn}。将这些记录重新排序为{Ri1,Ri2,…,Ri原创 2017-09-06 01:02:07 · 256 阅读 · 0 评论 -
疯狂Java笔记之表达式中的陷阱
关于字符串的陷阱JVM对字符串的处理首先看如下代码:String java=new String("HelloJack");上面创建了两个字符串对象,其中一个是“HelloJack”这个直接量对应的字符串对象,另一个是由new String()构造器返回的字符串对象。对于Java程序中的字符串直接量,JVM会使用一个字符串池来保存它们:当第一次使用某个字符串直接量是,JVM会将它放入字符串池进行缓存原创 2017-08-21 01:05:08 · 231 阅读 · 0 评论 -
疯狂Java笔记之Java的内存与回收
Java引用的种类1.对象在内存中的状态对于JVM的垃圾回收机制来说,是否回收一个对象的标准在于:是否还有引用变量引用改对象?只要有引用变量引用对象,垃圾回收机制就不会回收它。也就是说,当java对象被创建出来之后,垃圾回收机制会实时的监控每个对象的运行状态,包括对象的申请,引用,被引用,赋值等。当垃圾回收机制实时的监控到某个对象不再被引用变量所引用时,垃圾回收机制就会回收它所占用的空间。基本上,可原创 2017-08-18 15:53:00 · 604 阅读 · 0 评论 -
高仿支付宝9.9.2版本生活模块界面来讲解CoordinatorLayout,AppBarLayout,CollapsingToolbarLayout
首先先看看仿制的效果先,如下图: 是不是很像支付宝的效果呢,我们今天就要通过讲解android5.0新出的控件CoordinatorLayout,AppBarLayout,CollapsingToolbarLayout来实现这个效果。在讲解之前先看看界面布局文件,在一个一个讲讲怎么实现吧:<android.support.design.widget.CoordinatorLayout原创 2016-09-16 22:51:27 · 2487 阅读 · 6 评论 -
高仿QQ运动的周报界面
这次高仿的是QQ运动的周报界面的网图。这个控件刚开始的时候以为代码量不大,没想到一路下来界面代码在加上动画代码还是蛮多的。好了老规矩先上图: 效果还是和qq的才不多吧。 1. 首先我把各个变量都贴出来以便在后续中你们可以更好理解代码的意思: //屏幕的宽度 private int mScreemWidth; //屏幕的高度 private int mScreemHi原创 2016-10-22 16:18:07 · 2098 阅读 · 1 评论 -
模仿企鹅FM播放主页面滑动动态改变各视图的大小
国庆的一个任务就是把自己之前写的代码搬到博客。这次给各位带来的是通过滑动来动态改变各个View的大小进而达到企鹅FM播放页面的滑动效果(仅仅是滑动效果),老规矩看图先: 首先看看主界面的xml布局:<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/ap原创 2016-10-05 00:27:53 · 913 阅读 · 1 评论 -
一个漂亮的干货集中营客户端的生成,集合了干货api的大部分功能
好像好久没有更新了,这次给大家带来的是自己完全用一个全新的方式练手开发的客户端,而后台接口用的是干货集中营的API,所以在这里要谢谢daimajia,因为他的贡献所以我们才可以有好的api进行练手。这是一个漂亮的Gank客户端,里面的功能包含了干货集中营的api所提供的大部分功能。功能如下:可以查看每一天提供的Android,ios,休息视频等相关的技术干货,还有一张高清的妹子图在等着你哦除此之原创 2016-12-23 18:03:20 · 2700 阅读 · 0 评论 -
基于豆瓣和妹子的api用React Native写的demo
最近一直在学React Naitve,可以说React Native的确有他自身强大的地方,不管是运行效率还是热更新都和一般的h5有的一比,当然以为面世的时间还不算太久,版本更新又十分的快,所以坑也多,对于一般的移动开发者来说学习成本也蛮大的, 个人觉得用React Naitve做混合开发,把一些需要经常变化的模块用react native开发还是一个不错的选择。demo就是已React Nait原创 2017-01-24 11:00:34 · 831 阅读 · 0 评论 -
android蓝牙4.0的知识要点
这次主要讲解蓝牙4.0的基本要点,作为自己的备忘录记录下来吧。首先普及一下蓝牙4.0又称低功耗蓝牙,基于Gatt协议来实现。而蓝牙4.0一下的是传统蓝牙,基于socket方式来实现。所以4.0以上的蓝牙具有传输速度更快,覆盖范围更广,安全性更高,延迟更短,耗电极低等等优点。一个BLE终端可以包含多个Service, 一个Service可以包含多个Characteristic,一个Characteri原创 2017-03-13 23:07:41 · 353 阅读 · 0 评论 -
教你实现最简单的QQ消息item侧滑菜单
这次跟大家介绍怎么简单的实现类似QQ消息Item的左右滑动菜单的实现。首先见效果图先: 这就实现了ListView或RecyclerView加载的item的View实现侧滑菜单。至于这么实现,很简单就是通过继承HorizontalScrollView,再判断滑动的距离以滑到对应的View或菜单。具体如下: 首先,在item的界面布局方面如下:<?xml version="1.0" encodin原创 2017-04-16 23:21:05 · 1221 阅读 · 0 评论 -
高仿京东金融的数值滚动尺
以前博客讲的大部分都是静态的自定义View的编写,其实无非就是“画画”画出一个好看的效果,而这篇博客写的是写一个动态的自定义控价,这里不仅需要”画”,还要各种事件和计算,废话不说现在就讲讲自定义数值滚动尺,这个用的还是满广的,例如京东金融的通过滚动尺选择金额等,而这次就是高仿京东金融的数值滚动尺。首先看看下效果图,如下 - 首先先给你们各个变量的含义,以免在后面的讲解中不知变量的意思,代码如下原创 2017-05-15 16:03:57 · 407 阅读 · 0 评论 -
淘宝开源库VLayout实践
最近淘宝出了vlayout,刚开始看淘宝的文档的时候还是有点懵,后来自己也总结规划了一下,写了一个比较好看的demo,顺便在这里总结一下。VLayout是什么,说白了就是用一个原生RecycelerView加上VLayout来实现在一个页面上比较复杂的布局并且有一个比较好的复用,在RecyclerView里同时有GridLayout布局,瀑布流布局,浮动布局等VLayout提供的九大布局,这也是淘宝原创 2017-05-18 19:34:43 · 1492 阅读 · 0 评论 -
高仿网易严选底部弹出菜单
在网易严选的看东西的时候在商品详情页里看到他的底部弹出菜单,本能反应是想用DottomSheetDialog或者PopupWindow来实现,可是发现实现不了他那种效果,于是就自己模仿一个像严选这样的底部弹出菜单。不管是DottomSheetDialog或者PopupWindow他们的阴影背景都是全部覆盖的,这就造成除了菜单内容的View之外其他都是阴影的,而严选不是这样的。唠叨到此,首先展示效果图原创 2017-06-24 22:39:32 · 1451 阅读 · 0 评论 -
Android Flexboxlayout使用详解
对于学习React Native或者前端的同学肯定对Flexbox 的有所了解,因为这是前端领域CSS的一种布局方案,现在google也开源了类似前端Flexbox的项目叫Flexboxlayout,这样android也可以用Flexboxlayout实现类似前端Flexbox的布局。首先Flexboxlayout有5大布局属性分别是flexDirection,flexWrap,justifyCon原创 2017-07-27 00:35:36 · 1346 阅读 · 0 评论 -
RxJava的消息发送和线程切换
RxJava相信大家都非常了解吧,今天分享一下RxJava的消息发送和线程源码的分析。最后并分享一个相关demo,让大家更加熟悉我们天天都在用的框架。##消息订阅发送首先让我们看看消息订阅发送最基本的代码组成: Observable observable = Observable.create(new ObservableOnSubscribe&lt;String&gt;() { ...原创 2018-11-02 11:51:24 · 426 阅读 · 0 评论