- 博客(87)
- 资源 (224)
- 问答 (1)
- 收藏
- 关注
转载 Retrofit缓存网络数据RxCache--RxJava和数据库
RxJava是响应式编程, 在异步处理网络数据时, 使用广泛。 我们也可以使用一些Rx的特性, 优雅地缓存网络数据.缓存模式: 读取数据库, 显示, 请求数据, 存储到数据库, 再更新页面.SpikeKing 大神github地址:https://github.com/SpikeKing 代码:https://github.com/SpikeKing/wcl-rx-cache-demo使用Dag
2016-05-31 23:58:16 10874 1
原创 Android 5.0+ 自定义普通按钮的ripple波纹效果
在Android L5.0中加入了触摸反馈动画。其中最明显,最具代表性的就是波纹动画,比如当点击按钮时会从点击的位置产生类似于波纹的扩散效果。波纹效果(Ripple):当你使用了Material主题后,波纹动画会自动应用在所有的控件上,我们当然可以来设置其属性来调整到我们需要的效果。可以通过如下代码设置波纹的背景:android:background=”?android:attr/selectabl
2016-05-31 17:05:44 3642
原创 Android 5.0以上版本去掉Button自带阴影效果的方法
关键代码:style=”?android:attr/borderlessButtonStyle” 参考文章: http://stackoverflow.com/questions/28756035/how-to-remove-button-shadow-android 具体配置:<Buttonandroid:layout_width="wrap_content"android:layout_h
2016-05-31 16:29:09 33347 5
原创 Android 5.0设置全屏无标题
在style.xml中定义:<style name="FullScreenTheme" parent="Theme.AppCompat.Light.NoActionBar"> <!-- Customize your theme here. --> <item name="android:windowFullscreen">true</item> </style
2016-05-31 14:48:00 2686 1
原创 RxJava Subscription 自动取消订阅
在RxJava Observer与Subscriber的关系 一文中,我们提到: subscribe(mObserver)和subscribe(mSubscriber)执行结果就会有区别: subscribe(mSubscriber)这种订阅方式在第二次请求数据时就不会执行了,原因就是第一次onNext后自动取消了订阅; subscribe(mObserver)则不出现此问题
2016-05-30 23:09:21 27561 8
转载 Android端 WebP图片压缩与传输的一点探索
简介 直到4g时代,流量依然是宝贵的东西。而移动网络传输中,最占流量的一种载体:图片,成为了我们移动开发者不得不关注的一个问题。 我们关注的问题,无非是图片体积和质量如何达到一个比较和谐的平衡,希望得到质量不错的图片同时体积还不能太大。 走在时代前列的谷歌给出了一个不错的答案——WebP。 WebP是一种图片文件格式,在相同的压缩指标下,webp的有损压缩能比jpg小 25-34%。而在
2016-05-30 22:42:17 2821 1
转载 Retrofit + RxJava 业务状态重定向及分离
问题本文主要介绍了在 Retrofit + RxJava 环境下更优雅的解决了以下两个问题:将接口业务上的失败重定向到 onError(Throwable e) 输出;业务成功时分离出 data 数据由 onNext(T t) 输出;场景一般来说,一个友好的接口返回 json 应该是这样的:{ "code":200, "codeMsg":"查询成功!", "data":
2016-05-30 22:15:33 3031
原创 RxJava Observer与Subscriber的关系
在说Observer与Subscriber的关系之前,我们下重温下相关概念。RxJava 的观察者模式RxJava 有四个基本概念:Observable (可观察者,即被观察者)、 Observer (观察者)、 subscribe (订阅)、事件。Observable 和 Observer 通过 subscribe() 方法实现订阅关系,从而 Observable 可以在需要的时候发出事件来通知
2016-05-29 22:37:57 24697 3
原创 Android:自定义DialogFragment
DialogFragmentDialogFragment是在Android3.0的时候被引入的,从其名字可以很直观的看出它是一种基于Fragment的Dialog,可以用来创建对话框,它是用来替代Dialog的。一个新事物的出现是为了解决旧事物存在的问题,那不建议使用的Dialog存在什么问题呢?下面简单的说下。Dialog存在问题在手机配置发生变化后(比如:旋屏后),变化之前显示的Dialog,
2016-05-29 18:59:12 3871
原创 RxAndroid之Rxlifecycle使用
随着Android第三库的普及,RxJava和RxAndroid(https://github.com/ReactiveX/RxAndroid)越来越被人熟知,简洁的语法,配合Java8 Lambda表达式,使代码的结构更加清晰,通过线程调度器更容易控制和切换线程,种种优点,使用它的人也越来越多。但是使用不好,很容易导致内存泄露。Rxlifecycle (https://github.com/tre
2016-05-29 00:12:23 38150 9
转载 使用RxJava来改进用户体验
一个完美的移动世界永远不会失去连接,而服务端也永远不会返回错误。构建一个很棒的app对于用户来说是幸福的事而对于开发者来说则是痛苦的事。用户点击一个按钮就阻塞了所有操作的时代已经过去了,那是要死人的。让我们来创建一个更好的文本框搜索功能并关注以下需求尽可能少的请求对用户尽可能少的错误信息RX 的逻辑相当简单,重点在完善细微的细节上。让我们从简单的逻辑开始:当用户输入内容的时候我们发出了一个网络请求
2016-05-29 00:04:55 4011 1
原创 推荐RxJava+MVP的开源项目——RxJoke
RxJoke 一个集成Rxjava,Retrofit,Mvp,以及Dagger2的开源项目代码:https://github.com/JDDJJ/RxJoke整体架构 Model-view-presenter,简称MVP,是电脑软件设计工程中一种对针对MVC模式,再审议后所延伸提出的一种软件设计模式。一款工程的架构,就相当于骨骼,骨架,只有骨架搭建的好,才能使整个工程富有弹性,并且逻辑清晰。
2016-05-28 11:04:42 4031
转载 用 Retrofit 2 简化 HTTP 请求(Jake Wharton)
Retrofit 作为简化 HTTP 请求的库,已经运行多年,2.0版本依然不辱使命的在做这些事情。不过 2.0 版本修复了一些长期影响开发者的设计,还加入了前所未有的强大特性。在 NYC 2015 的这一个分享中,Jake Wharton 的演讲涵盖了所有 Retrofit 2.0 的新特性,全面介绍了 Retrofit 2.0 工作原理。Transcription below provided
2016-05-28 10:39:17 3896 1
转载 Android ViewPager与SwipeBackLayout的业务需求解决
笔者在登陆页面使用了ViewPager与SwipeBackLayout,但有一个业务需求是:ViewPager在第二页是可以右滑到第一页,当ViewPager在第一页时,才会触发SwipeBackLayout的右滑返回,ViewPager在第一页可以左滑到ViewPager的第二页。参考了ViewPager的源码,做出以下解决办法:继承ViewPager类,重写dispatchTouchEvent方
2016-05-28 01:09:28 2015
转载 Android Retrofit 请求字符串(非JSON数据)
在使用Retrofit来作为网络请求库之后,笔者查阅了网上的有关教程,无外乎都是请求json数据,使用addConverterFactory(GsonConverterFactory.create())来作为转化器,如果业务需求是请求 字符串,而不是json数据格式呢,继续使用这个转换器就会产生错误。好,来到正题,如何使用Retrofit请求一段字符串: 来到官方文档查阅:http://squa
2016-05-28 01:06:29 8169
原创 Android Retrofit 2.0自定义Converter(JSONObject Converter)
如果在使用的过程中,不需要Gson以及其他转换器,只是单纯的返回 JSONObject,那这样怎么处理呢?通过阅读源码发现,可以通过自定义转换器的方式操作:import retrofit.Call/*Retrofit 2.0*/public interfase ApiService{ @POST("/list") Call<JSONObject> loadRepo();}同步操
2016-05-28 00:50:08 9200 3
原创 Android Retrofit2.0 查看log和JSON字符串(HttpLoggingInterceptor)
Retrofit2.0 怎么打印请求到的json字符串和查看log呢?关键代码:HttpLoggingInterceptor logging = new HttpLoggingInterceptor();logging.setLevel(HttpLoggingInterceptor.Level.BODY);httpClient = new OkHttpClient.Builder().addIn
2016-05-28 00:45:13 18669 9
转载 Lambda for Android
什么是lambdalambda是一种匿名表达式,retrolambda使得Android能使用lambda特性,举个例子:view.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Log.d(
2016-05-27 23:39:58 3340
转载 Android使用Retrofit技术仿微信图片上传,可以选择多张图片拍照上传
Android-UploadMultipartImageAndroid 仿照微信发说说,既能实现拍照,选图库,多图案上传 使用Retrofit技术。使用方法:详见博客http://blog.csdn.net/u010046908/article/details/50767904项目的运行效果:服务器端接收文件的actionUploadFile.java@Controller public clas
2016-05-26 23:27:23 23619
转载 Android Retrofit 2.0框架上传图片解决方案(一张与多张的处理)
1.单张图片的上传/** * 上传一张图片 * @param description * @param imgs * @return */ @Multipart @POST("/upload") Call<String> uploadImage(@Part("fi
2016-05-26 23:11:32 20729 4
转载 RxJava变换操作符:.concatMap( )与.flatMap( )的比较
是时候回归写作了。(译者注:原作者吧啦吧啦唠家常,这里就不做翻译了,但是,有两个重要的链接,点我,再点我)Observable 转换当你有一个需要订阅的Observable,并且希望转换结果的时候(切记,响应式编程中一切皆流)。即将涉及到observable转换的时候,从队列中取出将要消费的事件,不可能一直是我们需要的格式或者形状,可能每个值都需要扩展成更丰富的对象或者化作更多的值。为了达到目的,我
2016-05-26 17:03:49 4155
转载 Rxjava操作符compose()
原文链接:http://blog.danlew.net/2015/03/02/dont-break-the-chain/在RXJava中一种比较nice的思想是能够通过一系列的操作符看到数据是如何转换的:Observable.from(someSource) .map(data -> manipulate(data)) .subscribeOn(Schedulers.io())
2016-05-26 16:48:01 33074 7
原创 RxJava操作符学习APP
用于学习RxJava操作符的app下载地址: fir.im http://fir.im/bpdu或者直接在 Release里面下载 https://github.com/jiang111/RxJavaApp/releases/tag/1.3时间仓促,如果各位看官发现有错误的话请提到issueLogo来源于网络,如有所不适请见谅��app中用到的数据来自:https://github.com/
2016-05-26 16:11:14 3324
转载 RxJava操作符repeatWhen()和retryWhen()
第一次见到.repeatWhen()和.retryWhen()这两个操作符的时候就非常困惑了。不得不说,它们绝对是“最令人困惑弹珠图”的有力角逐者。然而它们都是非常有用的操作符:允许你有条件的重新订阅已经结束的Observable。我最近研究了它们的工作原理,现在我希望尝试着去解释它们(因为,我也是耗费了一些精力才参透它们)。Repeat与Retry的对比首先,来了解一下.repeat()和.ret
2016-05-26 10:34:08 9398
原创 RxJava 学习资料——ReactiveX和RxJava
ReactiveX/RxJava文档中文版项目地址:https://github.com/mcxiaoke/RxDocs,欢迎Star和帮忙改进。有任何意见或建议,到这里提出 Create New Issue阅读地址ReactiveX文档中文翻译PDF/ePub/Mobi格式下载说明大部分是翻译自 ReactiveX.io 和 RxJava Wiki,修正了原文的一些错误,补充了详细的说明和
2016-05-25 23:53:53 4830 1
原创 Rxjava Subject分析
Subject = Observable + Observer看看官方的描述: Subject可以看成是一个桥梁或者代理,在某些ReactiveX实现中(如RxJava),它同时充当了Observer和Observable的角色。因为它是一个Observer,它可以订阅一个或多个Observable;又因为它是一个Observable,它可以转发它收到(Observe)的数据,也可以发射新的数据
2016-05-25 22:49:33 11442 3
转载 Android技巧之封装Log工具类
1.前言开发过程中打日志已成为我们平时Debug调试不可缺少的一部分,Android SDK给我们也提供了很不错的工具类,并且分了不同的日志级别:Log.v() Log.d() Log.i() Log.w() and Log.e() 分别对应 VERBOSE,DEBUG,INFO, WARN, ERROR,其中Verbose不会在release版本中被编译进应用程序包中,而Debug日志根据Andr
2016-05-25 17:36:59 9881 6
转载 Android坐标系统常用方法属性总结
Android坐标系统Android系统中屏幕左上角为系统原点,其中原点向右方向为X轴正方向,原点向下方向为Y轴正方向。 View类我们知道View的绘制中先测量后布局,而这一步布局就是确定View的位置,而针对代码表现就是设置上述四个成员变量的值,这几个值构成的矩形区域就是View要显示的位置,这里要说明的一点就是这里的位置都是相对于父视图来说的,举个简单的例子,我们常见的侧滑菜单,它分为左侧部
2016-05-25 17:32:35 2171
转载 Android ColorState使用
1.前言在Android开发者中,对图片的使用是必不可少的,有时候不会切图,有时候是因为图标过多导致应用程序包过大等等,常见的就是在图标的几种状态,一般都是默认和选中两种,我们给图片着色来让它只用一张图标可以配置任何我们想要的图标颜色,我们这里提到一个小技巧来处理这些事情,我们尽可能的写一些代码来改变这种情况。2.问题在官方的做法一般是我们会去像下面那样写资源文件通过配置不同的图片来解决来标明在不同
2016-05-25 17:09:29 2619 1
原创 RxJava 学习书籍——RxJava Essentials
本书是对Ivan.Morgillo所写一书的中文翻译版本,仅供交流学习使用,严禁商业用途。另外推荐一本姊妹篇《Learning Reactive Programming》。 《RxJava Essentials》翻译中文版电子书 在线阅读:http://rxjava.yuxingxin.com本书内容有1.RX-from .NET to RxJava本章带你进入reactive的世界。我们会比较
2016-05-25 16:32:14 7276
原创 RxJava操作符doOnNext
doOnNext官方介绍: The doOnNext operator is much like doOnEach(Action1) except that the Action that you pass it as a parameter does not accept a Notification but instead simply accepts the emitted item.可
2016-05-25 15:49:32 21397 5
转载 RxJava学习小结
什么是RxJava1. 定义RxJava is a Java VM implementation of Reactive Extensions: a library for composing asynchronous and event-based programs by using observable sequences. RxJava是JVM的响应式扩展(ReactiveX),它是通过使用
2016-05-25 11:46:56 4074
转载 RxJava的副作用
RxJava的观察者类有许多方法,可以转换发出的字节流为任何你需要的数据类型。这些方法是RxJava非常核心的方法,是RxJava具有吸引力的重要缘故。但是有些方法无论如何都不能改变流本身,我称这些方法为副作用(Side Effect)方法。关于副作用方法,我的一点观点副作用方法并不影响你的字节流本身。相反地,当某些事件发生时它们被调用,这样允许你去处理这些事件。举个例子:当一些错误发生了,如果你想
2016-05-25 11:17:36 4625
转载 RxJava + Retrofit 的实际应用场景
前提需要知道什么是 RxJava 这里推荐下 扔物线写的 给 Android 开发者的 RxJava 详解 再感谢 RxJava 与 Retrofit 结合的最佳实践 这篇满满的干货。实战准备项目中用到的依赖:compile 'io.reactivex:rxjava:1.1.0'compile 'io.reactivex:rxandroid:1.1.0'compile 'com.google
2016-05-24 21:43:06 2723
原创 RxJava 操作符map
map名词是地图的意思,那么这样理解这个操作符就很想不通这个操作符的 应用场景了,但我们敲代码的不可能不熟悉这一个数据结构.在我使用这个操作符的理解中,map就是变换需要操作的数据内容或者结构的意思。所以其使用场景显而易见:当原始数据不能满足我们的需求,但我们却需要依赖这一原始数据去获取满足我们需求的数据时,那么就用它,准没错。假如有下面场景: 我有一个图片url集合,但我的需求却是依次获取到b
2016-05-24 21:33:32 6616
原创 RxJava 操作符flatmap
有如下场景: 在前段调用后端的API时,经常会出现回调嵌套的情况。假设我们有两个API,queryA 和 queryB. 并且queryB的运行依赖于queryA的结果。那么我们的程序在一般的情况下可能是这个样子。想象有如下的代码: 是不是感觉非常不舒服?假如嵌套的API再多几层,那么这将是个灾难。一个人开发的时候可能不觉得有什么问题,但是可以想象做code review或者新入项目组的同事
2016-05-24 21:04:42 9520 1
原创 RxJava使用介绍-Observable数学运算及聚合操作符
本篇文章继续介绍以下类型的操作符 - Mathematical and Aggregate Operators(Observable数学运算及聚合操作符)一、Concat Concat操作符将多个Observable结合成一个Observable并发射数据,并且严格按照先后顺序发射数据,前一个Observable的数据没有发射完,是不能发射后面Observable的数据的。
2016-05-24 14:07:43 4174
原创 RxJava 过滤操作符(Filtering Observables Operators)
“过滤操作”,顾名思义,就是过滤掉Observable发射的一些数据,不让他发射出去,也就是忽略丢弃掉,至于需要过滤那些数据,就需要按照不同的规则,所以RxJava有一些列关于过滤的操作符,接下来看看RxJava中的过滤操作符。DebounceDebounce操作符会过滤掉发射速率过快的数据项, 仅在过了一段指定的时间还没发射数据时才发射一个数据。RxJava将这个操作符实现为throttleWit
2016-05-24 11:51:42 6510
原创 RxJava Creating Observables(创建操作符)
上一篇文章我们通过一个简单的例子来给大家展示了RxJava的基本用法,相信大家已经对RxJava有了大概的了解,由于上篇文章对RxJava的使用介绍都是点到为止,并没有进行深入展开,也许你对RxJava有种名不副实的感觉。OK,下面我们就进入正题,一步步的揭开RxJava的神秘面纱!一个例子RxJava的强大之处,在于它提供了非常丰富且功能强悍的操作符,通过使用和组合这些操作符,你几乎能完成所有你想
2016-05-23 23:57:41 7025 8
原创 RxJava使用介绍-概念
RxJava系列教程:1. RxJava使用介绍 【视频教程】 2. RxJava操作符 • Creating Observables(Observable的创建操作符) 【视频教程】 • Transforming Observables(Observable的转换操作符) 【视频教程】 • Filtering Observables(Observable的过滤操
2016-05-23 23:40:07 7811
Android将list数据通过LitePal保存到本地(集合保存到本地)
2016-06-17
AndroidDownLoad-多线程断点续传下载
2016-06-14
DownloadEngine-Android多线程下载断点续传
2016-06-14
android-rsa-http
2016-06-12
RxJava在Android中内存泄漏解决以及RxJava的封装
2016-05-23
Android H5做的商城客户端
2016-04-29
Android通过AsyncTask与ThreadPool(线程池)两种方式异步加载大量数据的分析与对比
2016-03-31
Android Bluetooth蓝牙通信文件传输
2016-03-27
Android蓝牙聊天程序的扩展开发(基于Google Sample,类QQ设计)
2016-03-26
Android蓝牙聊天程序优化版
2016-03-26
Android 通过Socket 和服务器通讯
2016-02-16
android RangeSeekBarView 选定范围值的控件
2016-02-01
Android仿天天动态上拉播放界面控件
2016-01-31
Flutter编程指南-多线程
2022-02-21
java数据结构与算法之美(物超所值)
2022-02-09
flutter_macos_2.8.1-stable.zip
2022-01-05
mac_apktool.zip
2021-03-25
Postman-osx-5.3.2 for Mac
2017-10-31
CoordinatorLayout+AppBarLayout实现上滑隐藏ToolBar
2016-08-19
android自定义进度条渐变色View的实例代码
2016-07-26
Android多行文本折叠展开效果
2016-07-25
Android封装popwindow类(下拉菜单弹出和收缩效果)
2016-07-22
Android自定义spinner下拉框
2016-07-16
Android DigitalClock实现倒计时
2016-07-12
Android 带箭头有光晕效果的ProgressBar
2016-07-04
android webview与 js交互通信
2016-06-20
Android项目webview中做与js交互
2016-06-20
Android客户端提供Socket服务与pc通过USB通信
2016-06-17
Android 使用Socket,ServerSocket编程网络通信
2016-06-17
Android socket即时通信Demo
2016-06-17
自定义view和自定义动画怎么学习比较好呢?
2016-11-16
TA创建的收藏夹 TA关注的收藏夹
TA关注的人