DiyCode开源项目 BaseActivity 分析】的更多相关文章

1.首先将这个项目的BaseActivity源码拷贝过来. /* * Copyright 2017 GcsSloop * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http:…
1.BaseApplication整个应用的开始 1.1.看一下代码 /* * Copyright 2017 GcsSloop * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * *…
1.分析MainActivity整体结构 1.1.首先看一下这个界面的整体效果. 1.2.活动源代码如下 /* * Copyright 2017 GcsSloop * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of t…
1.首先看看TopActivity效果.    2.TopicActivity是一个继承BaseActivity的.前面分析过BaseActivity了.主要有一个标题栏,有返回的图标. 3.贴一下TopicActivity源代码. /* * Copyright 2017 GcsSloop * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file exc…
1.首先看一下效果 1.1做成了一个GIF 1.2.我用格式工厂有点问题,大小无法调到手机这样的大小,目前还没有解决方案. 1.3.网上有免费的MP4->GIF,参考一下这个网站吧. 1.4.讲解一下这个图片吧,首先是从话题中点击了其中一张图片,进入图片Activity, 然后可以自由放大,自由翻转. 2.分析一下继承的BaseImageActivity 2.1因为ImageActivity继承了BaseImageActivtiy,首先看看源代码. /* * Copyright 2017 Gcs…
1.效果预览以及布局分析 1.1.实际效果预览 左侧话题列表的布局是通过TopicProvider来实现的,所以当初分析话题列表就没有看到布局. 这里的话题内容不是一个ListView,故要自己布局. 1.2.整体布局对应关系 简单易懂的布局,首先用最外层的RelativeLayout,包裹了一个Toolbar和一个NestedScrollView NestedScrollView包裹了一个LinearLayout LinearLayout包裹了很多视图 1.3.注意点,这里图标是自定义圆角边框…
1.首先看一下效果 1.1.预览一下真实页面 1.2.分析一下: 要求输入Email或者用户名,点击编辑框,弹出键盘,默认先进入输入Email或用户名编辑框. 点击密码后,密码字样网上浮动一段距离,Email编辑框也是一样的,不过第一次默认是第一个. 没有账号?点击注册后跳转到一个网页,采用手机默认浏览器跳转. 2.LoginActivity布局分析 2.1.首先看一下activity_login源代码 <?xml version="1.0" encoding="utf…
1.首先看一下效果 这是手机上显示的效果: 1.1首先是一个标题栏,左侧一个左箭头,然后一个图标. 1.2然后下方是一个可以滑动的页面. 1.3分成了7个部分. 1.4DiyCode的图标. 1.5然后是Diycode一个什么样的社区? 1.6我是谁? 1.7我爸爸? 1.8GcsSloop==>一个生活在2.5次元的魔法师. 1.9捐赠一杯咖啡. 1.10License 1.11--diycode-- 2.分析一下布局文件 布局文件:activity_about. <?xml version…
1.效果预览 1.1.实际界面预览 1.2. 这是MainActivity中的代码 这里执行了跳转到自己的用户界面的功能. 1.3.点击头像或者用户名跳转到别人的页面 UserActivity的结构由两部分组成,首先是一个头像,然后是一个列表. 只要点击了用户名或者头像都会跳转到UserActivity页面.除了UserActivity中的头像. 2.布局分析 2.1.布局名称为activity_user,源代码如下: <?xml version="1.0" encoding=&…
1.整体效果预览及布局分析 1.1.设置界面预览 1.2.主体对应关系 注意这里的线条用ImageView来实现 有一个TextView是检查更新,默认隐藏,具体出现时间还得之后确认. 最后一个LinearLayout是用于登录用户还是未登录用户的区分. 其他都是确定好的静态布局.当然缓存大小和当前版本会变化. 1.3.外层布局和内层布局的关联 这里toolbar也是不能少的. 然后将剩下的布局用一个NestedScrollView包括,紧接着是一个LinearLayout布局. NestedS…
1.总体浏览效果及布局分析 1.1.看一下我的帖子预览效果 1.2.然后看一下我的收藏预览效果 1.3.归纳一下 所以我的帖子和我的收藏可以共用同一个类. 布局效果几乎一样,只是用户的选择不同. 所以今天我研究的就是共用的同一个类MyTopicActivity. 1.4.中间这个活动就是MyTopicActivity.布局为:activity_fragment. 1.4.1.看一下布局的源代码. <?xml version="1.0" encoding="utf-8&q…
1.效果预览 1.1.网站列表实际界面 1.2.注意这个界面没有继承SimpleRefreshRecycleFragment 前面的话题和新闻继承了SimpleRefreshRecyclerFragment 但是网站的页面继承了第二等级的RefreshRecyclerFragment 区别就在于: 第三等级的SimpleRefreshRecyclerFragment具有快速回到顶部的功能. 其实SitesListFragment也有快速回到顶部的功能,不过和前两个不太一样. 因为布局的方式不一样…
1.整体分析 1.1.作用讲解 这个类没有用到,只是一个备用的. 分类列表,用于定制首页内容 考虑到节点列表一般不会变化,所以直接将数据封装在客户端中,可以直接查看,提高效率. 1.2.整体分析 首先是新建这个碎片实例. 然后是复写RefreshRecycleFragment中的抽象函数,最后执行的initData(),为了获得碎片的结点数据. 然后是复写RefreshRecycleFragment中注册数据类型的抽象函数. 最后是具体的Diycode请求函数. 2.局部分析 2.1.成员变量…
1.效果预览 1.1.这个首页就是一个Fragment碎片,本文讲述的就是这个碎片的搭建方式. 下拉会有一个旋转的刷新圈,上拉会刷新数据. 1.2.整体结构 首先底层的是BaseFragment 然后RefreshRecyclerFragment继承了BaseFragment 然后SimpleRefreshRecycleFragment继承了RefreshRecyclerFragment 所以应用类的话只要继承SimpleRefreshRecycleFragment就可以了. 2.最基础的Bas…
在Android开发中有时我们须要訪问网络实时刷新数据.比方QQ好友在线状态最新信息,QQ空间须要显示很多其它的好友动态信息,EOE论坛client显示很多其它的文章帖子信息等.android-pulltorefresh开源项目提供一个向下滑动即刷新列表的功能,将该项目稍作改动就可以应用到自己的项目中. 1.下载地址 https://github.com/johannilsson/android-pulltorefresh 该项目为 Android 应用提供一个向下滑动即刷新列表的功能. 2.p…
本来写一篇开源商业模式的稿子,因为有四大主题,这个稿子有点大,导致现在半个月过去了,都还没有憋出来.   今天想想还是采用MVP(minimum viable product,最小化可行产品)模式吧.改成一个系列,一篇一篇短文章这样来.   这个系列的开篇就用MonicaHQ开源项目为例吧.   先简单介绍一下MonicaHQ: Github的地址是:https://github.com/monicahq/monica 截止到今天有6400星,725个Fork,207个Watch…
1.使用Glide前的准备 1.1.首先要build.gradle中添加   github原地址点击我. 参考博客:Glide-开始! 参考博客:android图片加载库Glide的使用介绍. 参考博客:Google推荐的图片加载库Glide介绍. 所有有关Glide的源头都是来自于github,首先亮一手,可以自己去看看. 1.2.有必要添加混淆 为了APP的安全,现在一般都要求添加混淆 在github上复制粘贴即可. 1.3.最简单的用法==>对于一个简单的view 了解这么多就行了. 2.…
1.NotificationActivity预览以及布局详解 1.1.首先看一下通知的具体页面. 1.2.然后是布局代码==>activity_fragment.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/ac…
1.磁盘图片缓存器DiskImageCache 1.1.这个类很多情况都可能用的到,耦合性很低,所以分开讲. 源代码: /* * Copyright 2017 GcsSloop * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a co…
1.内存泄漏的状况及原因 1.1.利用LeakCanary查看内存泄漏的状况 1.2.内存泄漏怎么产生的呢? InputMethodManager.mServicedView持有一个最后聚焦View的引用 直到另外的一个View聚焦后才会释放当前的View 当发生GC是mServicedView(GCRoot)持有的View的引用不会被回收 导致了内存泄漏 因为这个问题出现的频率比较高,LeakCanary上经常有这个泄漏的弹窗. 2.新建一个自定义类LMMleaks 2.1.自定义类LMMle…
1 背景 当在程序中,有大量的数据需要读写,数据库的响应会延迟,甚至阻塞.缓存可以缓解对数据库访问的压力,而且在内存中数据的读写要比读写硬盘上的数据快. 2 目的 ets_cache是用erlang实现的简单的缓存应用,它的结构简单,但功能强大支持百万级的数据量.其主要是用来存储一些公共访问的数据,这些数据存放在ets表中,借助ets表的高性能对数据进行操作. 3 结构 3.1 源码目录 下图是ets_cache的源码目录截图: include:主要是一些宏定义和引入的一些包.其中定义了默认缓存…
转自http://www.csdn.net/article/2014-04-10/2819247-how-to-learn-opensouce-project-&-ceph 摘要:开源技术的学习和采用确实存在着一定门槛,然而学习各种开源项目已经成为许多开发者不可回避的工作内容.那么,对于类似OpenStack的大型开源项目,开发者该如何着手,这里我们看章宇的分享. [编者按]在 上一届OpenStack Summit报道中,我们有提过,OpenStack已得到IBM.HP.RedHat等公司的鼎…
所以原谅我,不能把所有的都发上来,太杂了,反而不好. 1..NET时间周期处理组件 这个组件很小,主要是对时间日期,特别是处理时间间隔以及时间范围非常方便.虽然.NET自带了时间日期的部分功能,但可能还不强大.这个组件就是增强版本.详细功能可以看项目主页的介绍.在CodeProject: http://www.codeproject.com/Articles/168662/Time-Period-Library-for-NET 2.OxyPlot绘图组件 OxyPlot是一个.NET跨平台的绘图…
文章来自于 http://yizhaolingyan.net/?p=123#comment-207 学习各种开源项目,已经成为很多朋友不可回避的工作内容了.笔者本人也是如此.在接触并学习了若干个开源项目之后,笔者试图对自己工作过程中的若干体会加以总结,以期对一些希望借鉴的朋友有所裨益.        需要说明的是,笔者本人接触的开源项目大多属于计算机系统领域,例如Linux kernel,KVM,QEMU,OpenStack等.因此,此处介绍的经验必定也有些局限.请读者们自行分辨,区别对待. 1…
1.Constant常量定义类 1.1.源代码 public class Constant { public static final String USER_AGENT_MOBILE = "Mozilla/5.0 (Linux; Android 5.1.1; Nexus 6 Build/LYZ28E) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Mobile Safari/537.36"; public st…
很多App要做到极致的话,对网络状态的监听是很有必要的,比如在网络差的时候加载质量一般的小图,缩略图,在网络好的时候,加载高清大图,脸书的android 客户端就是这么做的, 当然伟大的脸书也把这部分代码开源出来,今天就来带着大家分析一下脸书的这个开源代码. GitHub 地址https://github.com/facebook/network-connection-class 注意这个项目下载下来以后 会报很多错误,导致很多人运行不了,大家要根据各自电脑不同的情况修改gradle脚本,才能让…
xUtils是github上的一个Android开源工具项目,其中HttpUtils模块是处理网络连接部分,刚好最近想整理下Android网络编程知识,今天学习下xUtils中HttpUtils. xUtils项目地址:  https://github.com/wyouflf/xUtils 先看看分析的时序图,了解下基本的过程 1. Activity创建HttpUtils对象 HttpUtils http = new HttpUtils(): 查看HttpUtils类的构造函数 public H…
CQRS架构下Equinox开源项目分析 一.DDD分层架构介绍 本篇分析CQRS架构下的Equinox开源项目.该项目在github上star占有2.4k.便决定分析Equinox项目来学习下CQRS架构.再讲CQRS架构时,先简述下DDD风格,在DDD分层架构中,一般包含表现层.应用程序层(应用服务层).领域层(领域服务层).基础设施层.在DDD中讲到服务这个术语时,比如领域服务,应用层服务等,这个服务是指业务逻辑,而不是指任何技术如wcf,web服务. 下图是从经典三层构架演变为DDD下的…
CloudReader 一款基于网易云音乐UI,使用GankIo及豆瓣api开发的符合Google Material Desgin阅读类的开源项目.项目采取的是Retrofit + RxJava + MVVM-DataBinding架构开发.开发中所遇到的各种问题已归纳在这里. github地址:CloudReader Introduction 网易云音乐于2013年4月23日正式发布,是一款主打发现和分享,带有浓厚社交基因的网络音乐产品.相信用过的人都知道它给人的体验是极好的,我看过了绝大多数…
多看多学涨姿势 最近学习了一个开源项目,感觉收获颇多,这里做下简要的记录,首先感谢作者的开源.先看个大概图 感觉框架非常简单,界面也很一般,不过底层的处理的一些处理还是有很多可圈可点之处,代码的处理一看就是有工作经验的,下面将细细道来.项目在github传送门 启动 很经典的使用handler+子线程的延时加载方式,多了一个权限检查,应该是6.0系统中权限限制后需要用户手动设置,主要使用到一些系统intent的使用如启动应用设置的如 // 启动应用的设置 private void startAp…