• 新浪微博第二天


    一、概述

    微博应用第一天,我们实现了整体框架的搭建工作。

    第二天实现内容--先来几张效果图吧!

    二、本次实现业务逻辑如下

    1.微博通信层的封装

    先来个官方SDK截图

    查看微博API得知,若要实现网络请求,需要搞定API的3个基本类

    AsyncweiboRunner:网络请求类

    WeiboParameters:微博请求网络时携带参数类,比如携带Token认证 ,微博ID,当前页码,每页数量。。。

    WBConstants:常用的key

    请求网络方式如下:

    weiboRunner.requestAsync("https://api.weibo.com/2/statuses/public_timeline.json", mParameters, httpMethod, new RequestListener() {
                @Override
                public void onComplete(String s) {
                    Log.e("请求公共微博-->",s);
                    JsonParser parser = new JsonParser();
                    JsonElement element = parser.parse(s);
                    if(element.isJsonObject()){
                        JsonObject object = element.getAsJsonObject();
                        JsonArray array = object.get("statuses").getAsJsonArray();//status是一个 数组
                        List<StatusBean> statusBeans = new ArrayList<StatusBean>();
                        Type type = new TypeToken<ArrayList<StatusBean>>(){}.getType();
    
                        statusBeans = new Gson().fromJson(array,type);
                        Log.e("打印微博信息数量-->",statusBeans.size()+"");
                    }
                }
    
                @Override
                public void onWeiboException(WeiboException e) {
    
                }
            });
    /**
     * 微博请求3大类
     * 1.AsyncWeiboRunner  获取网络请求
     * 2.WBConstants 微博参数类
     * 3.WeiboParameters 微博参数类
     *  该类继承自WBConstants 存放了 ,访问微博所需的 常量信息
     */
    public class ParameterKey extends WBConstants {
        public static final String PAGE ="page";    //微博页码
        public static final String COUNT ="count";  //每页显示微博数量
        public static final String ID ="id";    //微博的id
        public static final String STATUS ="status";
        public static final String COMMENT ="comment";
    }

    2.RecyclerView的简单使用

    RecyclerView 其实就是一个列表数据,它和ListView,GridView类似,但是它更为强大,并且RecyclerView 就是为替换后者而产生的。

    关于详情,请阅读另一篇文章:

    参考博文:http://www.cnblogs.com/android-zcq/p/5130087.html

    3.图片的加载技术之Glide(谷歌官方推荐--支持GIF)

    图片加载技术到目前为止已经出现了很多优秀的框架

    1>Universal Image Loader --> 最经典的图片加载框架

    2>xUtils的bitmapUtils --> 1个非常强大的开源框架,图片处理只是其中一个小模块

    3>picasso --> Square 公司开源的一个 Android 图形缓存库

    4>GLide --> 谷歌官方推荐的图片加载库

    5>Fresco --> facebook推出的一款强大的android图片处理库

     关于图片加载请参考:

    http://www.cnblogs.com/android-zcq/p/5131554.html

    http://blog.csdn.net/theone10211024/article/details/45557859

    http://www.jianshu.com/p/4a3177b57949

    http://blog.csdn.net/wwj_748/article/details/10079311

    4.自定义控件

    由于微博的头像需要显示成圆形图片,所以提供了自定义圆形图片的几种方式

     参考博文:http://www.cnblogs.com/android-zcq/p/5138462.html

    5.SpannableString的使用

    微博正文中的 “博主名字”,“链接” 高亮显示

    参考博文:http://www.cnblogs.com/android-zcq/p/5119702.html

    6.图片的缩放技术

    我们经常见到微信或者QQ里面的图片,当我们点击一下就会出现一个全屏的大图片,并且这个图片是支持手指缩放的

    这是怎么实现的呢?

    如果用常规的自定义ImageView来实现,可以说是有一定的小麻烦,但是现在我们用了开源库PhotoView,就变得非常简单了

    参考博文:http://www.cnblogs.com/android-zcq/p/5138330.html

    7.数据刷新之上下拉加载

    数据上下拉加载这个几乎是每个网络应用不可或缺的一部分,并且目前开源项目也比较多,要实现这一技术已经十分容易了,本文将会讲解上下拉加载的最底层原理实现,以及第三方常用库的使用。

    参考博文:http://www.cnblogs.com/android-zcq/p/5135859.html

    8.MVP设计模式的尝试

    一种NB的设计模式,是的代码分工更为清晰明了

    参考博文:http://www.cnblogs.com/android-zcq/p/5126925.html

    源码地址:https://yunpan.cn/crjAEHLgVBwHC

  • 相关阅读:
    服务器做系统备份时失败
    PHPMailer中文乱码问题的解决方法
    html字符串分行显示
    Oracle中取某几个数的最大值最小值
    分布式事务之 Seata
    org.apache.dubbo 2.7.7 服务端处理请求及时间轮(失败重试)
    org.apache.dubbo 2.7.7 服务消费源码
    org.apache.dubbo 2.7.7 服务发布注册源码
    org.apache.dubbo 2.7.x 再聚首
    spring-cloud-gateway 服务网关
  • 原文地址:https://www.cnblogs.com/android-zcq/p/5129525.html
Copyright © 2020-2023  润新知