Android
cool丶
android SSH
展开
-
MVP结合RxJava,Retrofit2.0初探索
MVP是在MVC的基础上演变过来的,MVP包括Model,View,Presenter3层,View和Model相互独立,通过Presenter作为桥梁将View和Model联系起来,从而实现视图和模型的完全分离。MVP模式下,View只管接受Presenter的调度刷新UI,Model只管像Presenter提供数据,Presenter负责处理业务逻辑。下面展示的是一个录入数据的小项目一原创 2017-03-23 20:36:39 · 836 阅读 · 1 评论 -
给初学者的RxJava2.0教程(八)
转自:http://www.jianshu.com/p/a75ecf461e02前言在上一节中, 我们学习了FLowable的一些基本知识, 同时也挖了许多坑, 这一节就让我们来填坑吧.正题在上一节中最后我们有个例子, 当上游一次性发送128个事件的时候是没有任何问题的, 一旦超过128就会抛出MissingBackpressureException异常,转载 2017-04-17 19:54:18 · 482 阅读 · 0 评论 -
给初学者的RxJava2.0教程(九)
转自:http://www.jianshu.com/p/36e0f7f43a51前言好久不见朋友们,最近一段时间在忙工作上的事情,没来得及写文章,这两天正好有点时间,赶紧写下了这篇教程,免得大家说我太监了。正题先来回顾一下上上节,我们讲Flowable的时候,说它采用了响应式拉的方式,我们还举了个叶问打小日本的例子,再来回顾一下吧,我们说把上游看成小日本,转载 2017-04-17 19:55:38 · 672 阅读 · 0 评论 -
给初学者的RxJava2.0教程(七)
转自:http://www.jianshu.com/p/9b1304435564前言上一节里我们学习了只使用Observable如何去解决上下游流速不均衡的问题, 之所以学习这个是因为Observable还是有很多它使用的场景, 有些朋友自从听说了Flowable之后就觉得Flowable能解决任何问题, 甚至有抛弃Observable这种想法, 这是万万不可的,转载 2017-04-17 19:52:49 · 787 阅读 · 0 评论 -
给初学者的RxJava2.0教程(六)
转自:http://www.jianshu.com/p/e4c6d7989356前言在上一节中, 我们找到了上下游流速不均衡的源头 , 在这一节里我们将学习如何去治理它 . 可能很多看过其他人写的文章的朋友都会觉得只有Flowable才能解决 , 所以大家对这个Flowable都抱有很大的期许 , 其实呐 , 你们毕竟图样图森破 , 今天我们先抛开Flowable, 仅转载 2017-04-17 19:50:28 · 270 阅读 · 0 评论 -
给初学者的RxJava2.0教程(五)
转自:http://www.jianshu.com/p/0f2d6c2387c9前言大家喜闻乐见的Backpressure来啦.这一节中我们将来学习Backpressure. 我看好多吃瓜群众早已坐不住了, 别急, 我们先来回顾一下上一节讲的Zip.正题上一节中我们说到Zip可以将多个上游发送的事件组合起来发送给下游, 那大家有没有想过一个问题, 如转载 2017-04-17 19:49:06 · 598 阅读 · 0 评论 -
给初学者的RxJava2.0教程(四)
转自:http://www.jianshu.com/p/bb58571cdb64前言在上一节中, 我们提到了Flowable 和Backpressure背压, 本来这一节的确是想讲这两个东西的,可是写到一半感觉还是差点火候,感觉时机未到, 因此,这里先来做个准备工作, 先带大家学习zip这个操作符, 这个操作符也是比较牛逼的东西了, 涉及到的东西也比较多, 主要是一些细转载 2017-04-17 19:47:46 · 325 阅读 · 0 评论 -
给初学者的RxJava2.0教程(三)
转自:http://www.jianshu.com/p/128e662906af前言上一节讲解了线程调度, 并且举了两个实际中的例子, 其中有一个登录的例子, 不知大家有没有想过这么一个问题, 如果是一个新用户, 必须先注册, 等注册成功之后再自动登录该怎么做呢.很明显, 这是一个嵌套的网络请求, 首先需要去请求注册, 待注册成功回调了再去请求登录的接口.我转载 2017-04-17 19:46:29 · 333 阅读 · 0 评论 -
给初学者的RxJava2.0教程(二)
转自:http://www.jianshu.com/p/8818b98c44e2前言上一节教程讲解了最基本的RxJava2的使用, 在本节中, 我们将学习RxJava强大的线程控制.正题还是以之前的例子, 两根水管:RxJava正常情况下, 上游和下游是工作在同一个线程中的, 也就是说上游在哪个线程发事件, 下游就在哪个线程接收事转载 2017-04-17 19:44:40 · 631 阅读 · 0 评论 -
给初学者的RxJava2.0教程(一)
转自:http://www.jianshu.com/p/464fa025229e#前言上个月RxJava2正式版发布了,但目前国内的资料还比较少,以前使用过RxJava1只需要看看更新文档就知道怎么使用了,但还有一些以前没用过RxJava的朋友可能就不知道怎么办了,不知道该看RxJava1还是直接跳到RxJava2。所以写下这个教程, 帮助那些没有用过RxJava的朋友入门。转载 2017-04-17 19:41:07 · 774 阅读 · 0 评论 -
直接拿来用,BaseActivity的常用功能的抽取
基于所有Activity的共性抽取BaseActivity,方便所有的Activity的统一管理,封装共同的方法,在此实现子类中的布局文件中的按钮自动设置点击监听,子类直接处理响应事件即可原创 2016-03-16 00:09:23 · 1680 阅读 · 0 评论 -
沉浸式状态栏实现
沉浸式状态栏实现原创 2016-08-17 10:18:57 · 489 阅读 · 0 评论 -
底部弹出alertDialog,宽度匹配屏幕宽
底部弹出alertDialog,宽度匹配屏幕宽原创 2017-01-20 16:00:07 · 976 阅读 · 0 评论 -
使用RxJava打造无限轮播图
最近项目使用到无限录播图,打造无限轮播图有2种方式,其中一种是在adpater中返回Ingeger.MaxValue,让viewPager无限轮播起来以前都是使用handler来发消息,此次打造轮播图使用全新到方法,通过在需要轮播到列表的头部添加最后一张图片,列表的尾部添加第一张图片来达到无限循环,使用RxJava的interval来实现不断的循环播放,图片按下停止轮播,抬起继续轮播,切到其它页面原创 2017-04-13 14:45:34 · 1304 阅读 · 0 评论 -
高级UI之PathMeasure学习
效果图:PathMeasure中的方法:返回值方法名释义voidsetPath(Path path, boolean forceClosed)关联一个PathbooleanisClosed()是否闭合floatgetLength()获取Path的长原创 2017-05-25 22:13:37 · 727 阅读 · 0 评论 -
shell脚本
1. 在linux端执行命令:vim 01.sh 点击键盘i键开始输入: 输入如下:#!/bin/bashNDK=100text="i am ndk"text1='date'text2=$(who)echo $NDKecho $text1echo $text2输入完成后,点击esc然后shift+: wq!回车保存 最后输入命令:chmod u+x 01.sh修改执行权限 执行原创 2017-08-27 01:03:51 · 428 阅读 · 0 评论 -
JNI开发基础系列-JNI方法动态注册
JNI方法动态注册java中创建FileUtils.javapackage com.cool.ndktest2;/** * Created by cool on 2017/8/17. */public class FileUtils { public native void diff(String path,String pattrn,int num);}c中//// Created原创 2017-08-17 15:54:41 · 255 阅读 · 0 评论 -
JNI开发基础系列--JNI一些基本概念
JNI一些基本概念1.在开发JNI之前我们需明白什么是JNI,以及JNI的使用场景,下面回答这两个问题第一个问题:什么是JNI呢? JNI是Java Native Interface的缩写,它提供了若干的API实现了Java和其他语言的通信(主要是C&C++)第二个问题:JNI的使用场景?java api 不能满足我们程序的需要的时候 算法计算,图像渲染 效率要求非常高当需要访问一些已有的本原创 2017-08-13 20:09:11 · 228 阅读 · 0 评论 -
JNI开发基础系列--java和c之间互调
java和c之间互调java非静态native方法调c 在java中编写非静态方法:public native String getString();在c中//java非静态方法jobjectJNIEXPORT jstring JNICALL Java_com_cool_ndktest_Jni_getString (JNIEnv * env, jobject jobj){//原创 2017-08-13 21:15:50 · 343 阅读 · 0 评论 -
JNI开发基础系列--链接第三方动态库
链接第三方动态库下面模拟链接第三方动态库的过程 一、编译一个动态库 1.1 在CMakeLists.txt中配置(其实也是androidStudio新建一个包含c++的默认配置)add_library( # Sets the name of the library. native-lib # Sets the library as a share原创 2017-08-16 12:05:29 · 670 阅读 · 1 评论 -
JNI开发基础系列--文件切割和文件合并
文件切割和文件合并文件切割思想:首先计算出一个文件的大小,根据需要切割的份数计算出每份的大小,假如文件的长度为size,需要分割成n份。那么会有2种情况:当size能被n整除时,即size%n = 0,每份的大小为:size/n当size不能被n整除时,那么我们计算的思想是这样的,首先让前面(n-1)份进行均分,每份大小为size/(n-1),剩下的没分割玩的留给最后一份,最后一份的大小即siz原创 2017-08-17 22:07:46 · 400 阅读 · 2 评论 -
JNI开发基础系列--开启JNI线程
java中 /** * 开启JNI线程 * @param view */public void newJniThread(View view){ initJNI(); Log.e("399","开启jni线程前,threadName:" + Thread.currentThread().getName()); ne原创 2017-08-17 23:53:22 · 836 阅读 · 0 评论 -
封装弹性dialog框架,使用只需一行代码
效果图 效果图实现思路:我们可以在dialog中设置的布局中做手脚,dialog的根布局使用FrameLayout,在渲染dialog的布局完成后,偷偷的添加一个背景view,放在FrameLayout的最底部,然后通过背景view的onDraw方法画view的背景,可以看到,背景view的背景是不规则的,首先想到的就是path,具体实现方式当然是贝塞尔曲线了,下面是具体步骤。一、创建Elasti原创 2017-08-02 17:47:39 · 395 阅读 · 0 评论 -
发布项目到jcenter
当我们使用RxJava,retrofit时,我们使用的姿势是这样的compile 'io.reactivex.rxjava2:rxjava:2.0.1'compile 'com.squareup.retrofit2:retrofit:2.3.0'使用很方便有木有,如果我们自己写的一些可重复使用的组件或者框架也可以这样使用岂不是很酷,下面将介绍如何将自己的库发布到jcenter。第一步:注册jcen原创 2017-08-02 17:52:04 · 303 阅读 · 0 评论 -
封装可展开和收缩的View
按国际惯例,在开始前先上效果图 第二张gif图片说明,其中这个搜索布局是我借用的别人的,本人比较懒,直接拿来用了布局出处:http://www.jianshu.com/p/e0a6fc621945写在前面:当你看完2个gif,是不是忍不住说,你这搞毛啊,谷歌的ViewAnimationUtils不是已经实现了吗,为什么你还去重复的造轮子,这不是浪费表情浪费青春么,大兄弟莫激动,慢慢听我道来原创 2017-08-07 12:45:37 · 652 阅读 · 0 评论 -
android实现签名功能
签名功能实现原创 2017-02-07 12:20:13 · 842 阅读 · 1 评论 -
cordova开发自定义插件
使用cordova自定义插件原创 2016-04-14 17:32:22 · 12679 阅读 · 47 评论 -
流式布局SearchFlowLayout
流式布局SearchFlowLayout原创 2016-11-01 17:13:15 · 532 阅读 · 0 评论 -
通过资源的名称获取资源id
通过资源的名称获取资源id原创 2016-07-05 16:58:37 · 2372 阅读 · 1 评论 -
微信第三方登录
微信第三方登录原创 2016-07-10 22:53:20 · 1539 阅读 · 0 评论 -
调用手机相机拍照并裁剪相片
调用手机相机拍照并裁剪相片原创 2016-07-05 21:01:00 · 792 阅读 · 0 评论 -
拍照和从相册中选取照片,并保存到SD卡上
拍照和从相册中选取照片,并保存到SD卡上原创 2016-07-10 20:39:52 · 1893 阅读 · 0 评论 -
单例Toast
在开发过程中如果打印Toast过于频繁,Toast的效果将会非常的差,必须等上一个Toast打印完之后才打印下一个,解决这种问题就需要将Toast设计成单例的了 单例Toast设计如下 private static Toast mToast; public static void showtoast(Context context,String msg){ if原创 2016-04-20 15:38:10 · 560 阅读 · 0 评论 -
倒计时效果
android开发过程中常用的2中倒计时原创 2016-03-13 23:13:26 · 591 阅读 · 0 评论 -
VideoView播放时抛出的IllegalStateException
使用ViewView播放视频,频繁的切换播放的视频,即频繁调用VideoView的setVideoPath方法,会出现异常,找了很久找到了一个解决办法原创 2016-03-23 22:30:00 · 2882 阅读 · 0 评论 -
获取系统电量
android中通过注册广播的形式获取系统电量原创 2016-03-21 22:58:38 · 1081 阅读 · 0 评论 -
查看手机SD卡视频音频文件信息
1.查询视频//查询视频数据库AsyncQueryHandler asyncQueryHandler = new AsyncQueryHandler(getActivity().getContentResolver()) { //该方法运行与主方法中 @Override protected void onQueryComplete(int token, Obje原创 2016-03-19 00:04:23 · 1179 阅读 · 0 评论 -
ViewPropertyAnimator的使用
这里没有进行对下面版本进行兼容,使用的是系统自带的ViewPropertyAnimator 比如对一个TextView进行缩放mTextView.animate().scaleX(1.2f).scaleY(1.2f);mTextView.animate()返回的就是ViewPropertyAnimator对象,对文本宽长宽缩放1.2倍,如果需要设置时长的话,如下原创 2016-03-16 12:59:36 · 875 阅读 · 0 评论 -
在代码中设置view的宽
private View mIndicatorView;mIndicatorView.getLayoutParams().width = UIUtils.getWindowWidth(this)/2;mIndicatorView.requestLayout();//让屏幕重新更新布局参数原创 2016-03-16 12:53:34 · 404 阅读 · 0 评论 -
android中设置全屏的方法
android中设置全屏原创 2016-03-03 14:54:54 · 586 阅读 · 0 评论