新手学习Rotrofit+RxJava网络请求以及Material Design风格

RK3568/RK3588之修改8250驱动实现RS485收发的自动切换 在串口发送前,若为485,则将控制引脚拉为发送状态,在发送后,循环查看是否发送完成,若发送完成则将引脚置回读状态,如此一来,就能实现在内核测控制方向切换,而不会因为延时造成数据丢失,经过测试此办法可行。全部修改完成后,重新编译生成内核文件和设备树文件,烧写到板子上即可。 阅读详情

先贴出代码地址吧:https://github.com/Pr-Jiang/NewsAPP


近期,宣讲会也不多了,受 饿了么 sofish 的点醒,确实应该静下心来做点实际的东西。

在寝室一个人,两天半的时间,做了这一个算是比较完整的项目吧。也参考了github上的开源项目进行学习~


之前只是浅显的看了一些RxJava的文章,推荐关于RxJava最友好的文章,这一次实战,也切实体会到了Retrofit+RxJava 进行网络请求的强大,特别是在于线程切换上,真的是厉害~~


上一下预览图片吧,闪屏页面由于是动图,gif图片太大,这边不支持,所以有感兴趣的可以去github看一下

也希望大家可以star一下,帮助我在校招中寻找自己理想的offer~

小鱼在此谢过了~


这是主界面

采用了MaterialDesign风格,使用EasyRecyclerView,利用CardView将item进行包裹

数据来 自天行数据 



private void easyGetDatas() {
        Retrofit retrofit = new Retrofit.Builder()
                .baseUrl(NewsFragment.BASE_URL)
                .addConverterFactory(GsonConverterFactory.create())    /* 添加Gson转换器 */
                .addCallAdapterFactory(RxJavaCallAdapterFactory.create())  /* 添加RxJava适配器 */
                .build();
        NewsService newsService = retrofit.create(NewsService.class);
        newsService.getNewsDatas(NewsFragment.APIKEY, "10", page)
                .subscribeOn(Schedulers.io())         /* 指定Observable执行所在的线程 */
                .map(new Func1<News, List<News.NewslistBean>>() {
                    @Override
                    public List<News.NewslistBean> call(News news) {
                        return news.getNewslist();
                    }
                })
                .observeOn(AndroidSchedulers.mainThread())  /* 将后边的线程切换到主线程 */
                .subscribe(new Subscriber<List<News.NewslistBean>>() {
                    @Override
                    public void onCompleted() {
                        easyRecyclerView.setRefreshing(false);
                    }

                    @Override
                    public void onError(Throwable e) {
                        Snackbar.make(easyRecyclerView, R.string.network_error, Snackbar.LENGTH_LONG).show();
                    }

                    @Override
                    public void onNext(List<News.NewslistBean> newslistBeen) {
                        adapter.addAll(newslistBeen);
                    }
                });
        page++;

    }


新闻详情:



瀑布流图片:

同样采用EasyRecyclerView

数据来自Gank.io



大图:

采用Picasso进行图片的加载

Picasso加载全尺寸图片质量高于Glide

Glide优势在于gif图片的加载以及按照ImageView大小加载相应尺寸的图片



图片保存使用RxJava~

代码如下:

private void savePicture(final Context context, final String id) {
        Observable.create(new Observable.OnSubscribe<Bitmap>() {
            @Override
            public void call(Subscriber<? super Bitmap> subscriber) {
                Bitmap bitmap = null;
                try {
                    /* Picasso加载图片质量高于Glide */
                    bitmap = Picasso.with(context).load(bitmapUrl).get();
                } catch (IOException e) {
                    subscriber.onError(e);
                }
                if (bitmap == null) {
                    subscriber.onError(new Exception("无法下载图片"));
                }
                subscriber.onNext(bitmap);
                subscriber.onCompleted();
            }
        }).subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(new Subscriber<Bitmap>() {
                    @Override
                    public void onCompleted() {

                    }

                    @Override
                    public void onError(Throwable e) {

                    }

                    @Override
                    public void onNext(Bitmap bitmap) {
                        File appDir = new File(Environment.getExternalStorageDirectory(), "NewsAPP");
                        String pictureName = id + ".jpg";
                        File file = new File(appDir, pictureName);
                        try {
                            FileOutputStream outputStream = new FileOutputStream(file);
                            /* 断言,true则继续执行,false则java.lang.AssertionError */
                            assert (bitmap != null);
                            /**
                             * 压缩图片
                             * @param quality 压缩率  100 表示不压缩
                             */
                            bitmap.compress(Bitmap.CompressFormat.JPEG, 100, outputStream);
                            outputStream.flush();
                            outputStream.close();
                        } catch (IOException e) {
                            e.printStackTrace();
                        }
                        /* 通知图库更新 */
                        Uri uri = Uri.fromFile(file);
                        context.sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, uri));
                        Toast.makeText(context, "图片已保存至" + appDir.getAbsolutePath() + "文件夹", Toast.LENGTH_SHORT).show();
                    }
                });

    }

对了!记得添加网络访问和存储器写权限!

LFM调制信号分类与检测识别 支持识别LFM信号、间歇采样干扰(ISRJ)、灵巧噪声干扰(SNJ)、扫频干扰(SJ)、瞄准干扰(AJ)、阻塞干扰(BJ)、密集假目标干扰(DFJ)、密集假目标加灵巧噪声干扰(DFWSNJ)、距离欺骗干扰(DDJ)、距离欺骗加灵巧噪声干扰(DDWSNJ)。Faster-RCNN支持检测识别LFM信号、间歇采样干扰(ISRJ)、灵巧噪声干扰(SNJ)、扫频干扰(SJ)、瞄准干扰(AJ)、密集假目标干扰(DFJ)、密集假目标加灵巧噪声干扰(DFWSNJ)、距离欺骗加灵巧噪声干扰(DDWSNJ)等8种信号。 阅读详情

相关推荐

Android-多列表的项目(Rxjava+Rtrofit+Recyclerview+Glide+Adapter封装)

主要是之前要奋战完成一个外包项目,也因为是第一次外包,很多东西要处理,当然也学到很多东西,在这个系列,我会把这次外包的一些代码分享给大家,一起学习。 也可到我的主页www.fuzhufuzhu.com 或者github:https://github.com/FuZhucheng/RxjavaRtrofitRecyclerview 去拿!

Rotrofit的简单使用

加入Rotrofit类库 compile ‘com.android.support:appcompat-v7:25.1.0’ compile ‘com.squareup.retrofit2:retrofit:2.0.1’ compile ‘com.squareup.retrofit2:converter-gson:2.2.0’//json转换器 compile

赏金猎人 875

一步步搭建Retrofit+RxJava+MVP网络请求框架

一步步搭建Retrofit+RxJava+MVP网络请求框架 完整的代码

android——retrofit+rxjava超级详细讲解与使用

在自我学习的过程中,和项目中,使用到了retrofit+rxjava访问接口,记录一下自己的学习过程,可能有不准确或者不到位的地方,请指正,嘻嘻!!!

weixin_45552475的博客 9966

Carson带你学Android:这是一份详细的 Retrofit使用教程(含实例讲解)

前言 在Andrroid开发中,网络请求十分常用 而在Android网络请求库中,Retrofit是当下最热的一个网络请求库 今天,我将献上一份非常详细Retrofit v2.0的使用教程,希望你们会喜欢。 如果对Retrofit v2.0的源码感兴趣,可看文章:Android:手把手带你深入剖析 Retrofit 2.0 源码 目录![目录](http://upload-

Carson带你学Android 25万+

Rrtrofit封装框架

1.添加方法: allprojects{ repositroies{ .... maven { url 'https://jitpack.io' } } } dependencies { /*网络请求框架*/ implementation 'com.github.AgnoiY:RetrofitFrame:1.1.9...

Agnoi丶军 341

Retrofit2详解

Retrofit框架: 它是Square公司开发的现在非常流行的网络框架 retrofit2.0它依赖于OkHttp,在这里我们也不需要显示的导入okHttp,在retrofit中已经导入okhttp3 性能好,处理快,使用简单,Retrofit 是安卓上最流行的HTTP Client库之一 github地址 使用步骤: 1、定义一个接口(封装URL地址和数据请求) 2、实例化R...

qq_36699930的博客 2万+

Retrofit 最简单的快速入门及自己封装

简单介绍及官方文档的坑 官方文档 http://square.github.io/retrofit/ Retrofit是Square公司开发的一款针对Android网络请求的框架,Retrofit2底层基于OkHttp实现的,OkHttp现在已经得到Google官方认可,大量的app都采用OkHttp做网络请求 Retrofit也就成了最火的网络请求框架之一,想着来研究一下Retrofit了…先看了

zhiyuan0932的博客 2万+

Rxjava(三)--代码实战

如何管理生命周期,防止内存泄漏 常见的运用场景,以及其对应的写法 ???第一个纠结于读要不要开io线程,如果是这样的话,很多操作都得改。 界面才是主线程。 ??? Skipped 1 frames! The application may be doing too much work on its main thread. 到底哪种程度才算正常 https://blog.csdn.net/cars...

活着就是应该在解放自我 197

【Android框架篇】Retrofit2.0+RxJava+MVP

近些年很火的Retrofit+RxJava网络请求框架,功能强大,结构合理,使用简单,最近简单研究了一下,结合MVP模式记录一下~ Retrofit retrofit是一款针对Android网络请求的开源框架,它与okhttp一样出自Square公司。Rotrofit2.0的网络框架全部交给了okhttp来实现,Android N之后Apache的httpclient已经被Google从SDK中...

Active的博客 654

Android开源项目 MVP+MD+Retrofit+RxJava 看了你会上瘾的

Android开源项目 MVP+MD+Retrofit+RxJava 看了你会上瘾的前言:去年这个时候独立开发上架了一款APP(应用宝:叙恋),用到的技术都是比较老旧。今年趁着回学校写论文的时间,会陆续将这款APP更改成目前最火热的MVP+MD+Retrofit+RxJava结构。要是你还没学会怎样使用它,怕是要out了。本文只分析源码、实战,请自行百度相关基础知识。猛戳致敬原创 我所理解的RxJ

sinat_27033869的博客 7162

Android应用架构之Retrofit使用

Retrofit:Square提供的开源产品,为Android平台的应用提供一个类型安全的REST客户端         https://github.com/square/retrofit RxAndroid:响应式编程框架RxJava针对Android平台的扩展。         https://github.com/ReactiveX/RxAndroid         ht

liuhongwei123888的专栏 10万+

Rettrofit设计模式

外观模式(门面模式) Retrofit给我们暴露的方法和类不多。核心类就是Retrofit,我们只管配置Retrofit,然后做请求。剩下的事情就跟上层无关了,只需要等待回调。这样大大降低了系统的耦合度。对于这种写法,我们叫外观模式(门面模式)。 几乎所有优秀的开源library都有一个门面。比如Glide.with() ImageLoader.load() Alamofire.request()。有个门面方便记忆,学习成本低,利于推广品牌。 Retrofit的门面就是retrofit.create(

AndroidTalk的博客 2338

【Android】Retrofit入门详解

简介:大三学生党一枚!主攻Android开发,对于Web和后端均有了解。 个人语录:取乎其上,得乎其中,取乎其中,得乎其下,以顶级态度写好一篇的博客。 Retrofit入门一.Retrofit介绍二.Retrofit注解2.1 请求方法注解2.1.1 GET请求2.1.2 POST请求2.2 标记类注解2.2.1 FormUrlEncoded2.2.2 Multipart2.2.3 Streaming2.3 参数类注解2.3.1 Header和Headers2.3.2 Body2.3.3 Path2.3.4

weixin_43927892的博客 2125

项目中对Rotrofit网络的简易封装

最近学习网络框架的封装,在常用的代码中基本上都是添加相应的依赖包,使用的第三方,方便快捷,但是对技术的深入学习是不可避免的,今天学习一下Retrofit的简易封装.在此贴出来,以后方便使用. 首先建一个RetrofitHelper.java 代码如下: package com.yiju.leal.net; import com.google.gson.Gson; import com

ChatHello的博客 1089

java中POJO, PO,VO,DTO,BO,DAO的简单理解

Java开发过程中,很多项目里面的都会有如下包model、entity、vo、dto、bo、vo等等。 实体对象有如:xxxEntity、xxxDTO、xxxBO、xxxVO等等。 这些主要是一种使用规范,起到见名知意的作用。 POJO(Plain Ordinary Java Object)简单的java对象,各种java对象的简称 Entity、DO、PO(persistant object) 持久对象,最常用实体类,和数据表一一对应,一个实体一张表 DTO(data transfer o.

Muscleheng的博客 1870

优雅的构建Android项目之RxAndroid+Retrofit网络请求

注意 Retrofit 2.0+和Retrofit 2.0之前的版本语法上有差别,本文基于Retrofit2.1.0 什么是Retrofit? retrofit是一款针对Android网络请求的开源框架,它与okhttp一样出自Square公司。Rotrofit2.0的网络框架全部交给了okhttp来实现,Android N之后Apache的httpclient已经被Google

流星火的博客 1723

Android主流框架RxJava+Retrofit+MVP

简介最近公司新创立一个项目,准备开始前期工作,搭建框架,正在想着要怎么搭建更好的框架,以便轻松应付后续需求。想着最近比较流行的RxJava+Retrofit+MVP框架,自己也准备写一个通用的前端项目框架,撸起袖子准备开干。RxJavaRxJava 在 GitHub 主页上的自我介绍是 "a library for composing asynchronous and event-based pr...

Veer的博客 5264

MTK屏幕闪屏如何Debug

DESCRIPTION]              经常有客户遇到闪屏问题,直接就提issue到MTK来解,其实这样做效率并 不高。          因为造成闪屏的原因多种多样,客户提供过来的往往是一个现象,有时候 连现象都描述的不够清楚,导致定位问题的时候难以找到正确的方向。          其实客户在遇到闪屏问题时,可以做第一手分析,找到一个正确的切入点。  

欢迎加入Android老司机学院 482266514(技术交流群)密码CSDN 3003

基于MATLAB的(7_4)汉明码编译码设计与仿真结果分析.pdf

基于MATLAB的(7_4)汉明码编译码设计与仿真结果分析.pdf基于MATLAB的(7_4)汉明码编译码设计与仿真结果分析.pdf基于MATLAB的(7_4)汉明码编译码设计与仿真结果分析.pdf基于MATLAB的(7_4)汉明码编译码设计与仿真结果分析.pdf基于MATLAB的(7_4)汉明码编译码设计与仿真结果分析.pdf基于MATLAB的(7_4)汉明码编译码设计与仿真结果分析.pdf基于MATLAB的(7_4)汉明码编译码设计与仿真结果分析.pdf基于MATLAB的(7_4)汉明码编译码设计与仿真结果分析.pdf

上一篇: Java中对象的初始化顺序
-姜小鱼
博客等级 码龄10年 5粉丝 9原创
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值