Android 重构学院新闻 App 记录
来源:互联网 发布:软件系统标准规范 编辑:程序博客网 时间:2024/05/23 01:56
前言
Android 已经到了material design 了,而我的应用还是老样式,所以想基于最新的控件重构一下代码,这儿做下记录。
- AppCompatActivity代替了 Activity
- RecyclerView 代替了 ListView,方便实现瀑布流、九宫格形
- ToolBar 代替 ActionBar
- 新的 Dialog 对话框
- support V7 是最低兼容 Android 2.1 (API level 7) ,V4 是兼容Android 1.6 (API level 4)
- NavigationView
改变 ToolBar 的颜色
将小圆点置为白色
<android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="wrap_content" android:minHeight="?attr/actionBarSize" android:background="?attr/colorPrimary" app:contentInsetLeft="0dp" app:contentInsetStart="0dp" android:contentInsetRight="0dp" android:contentInsetEnd="0dp" app:contentInsetRight="0dp" app:contentInsetEnd="0dp" android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" app:popupTheme="@style/ThemeOverlay.AppCompat.Light" app:layout_scrollFlags="scroll|enterAlways"></android.support.v7.widget.Toolbar>
To Do
查看 fresco 源码,注意是缓存这儿的实现
对于 android 插入 sqlite 数据库 ,有使用注解的方法实现,可以使用这个库
https://github.com/pardom/ActiveAndroid
jsoup 的源码,深度遍历 dom
新闻详情左右滑动,上一个新闻,下一个新闻
报警系统,如果页码解析不一致,就发送邮件给我
发送邮件报警
基于 javamail,计算方法调用,时间戳,原始页面
也可以有另外一种方案,把爬虫记录都保存在数据库里面,加一个失败或者成功的 field。循环监听这个数据库,如果有失败的记录,再去找相应的 log,把 log 文件发出到邮件。
图片地址一般是相对路径 /uploads/image/20141120/**3831_60451.png
但偶尔也会是绝对路径 http://see.xidian.edu.cn/uploads/image/20141120/201**1.png
或者说其他网站的图片链接 http://blog.csdn.net/never_cxb
- 场景1 比如图片不一定都是相对地址,存放在/upload 文件夹下面,可能是外网的图片,这时候对于特殊的图片 url 需要发到邮箱审核一下。
- 场景2
Quartz 实现定时任务
每天晚上凌晨爬虫,定时任务
架构
model -> javabea 一些 Article 类
adapter -> 存放 recycleView 的 adapter
功能的
沉浸式布局
android.support.v4.view.ViewPager 实现了图片轮播效果,Timer 实现了自动轮播,复写了ViewPager.OnPageChangeListener的onPageScrollStateChanged(int state)实现了首尾切换图片的效果
Android Support Design 中的 TabLayout 实现顶部栏目左右滑动切换效果
AsyncTask异步获取图片
利用 View 划一条横线
<View android:layout_width="match_parent" android:layout_height="1dp" android:layout_marginBottom="5dp" android:layout_marginTop="5dp" android:background="@color/colorAccent" />
//获取 fragment 依赖的 Activity,方便使用 Context private Activity mAct; @Nullable @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_one_latest,container,false); mAct = getActivity(); return view; }
Toolbar
mToolbar = (Toolbar) findViewById(R.id.toolbar);// toolbar.setLogo(R.drawable.ic_launcher);mToolbar.setTitle("Rocko");// 标题的文字需在setSupportActionBar之前,不然会无效// toolbar.setSubtitle("副标题");setSupportActionBar(mToolbar);/* 这些通过ActionBar来设置也是一样的,注意要在setSupportActionBar(toolbar);之后,不然就报错了 */// getSupportActionBar().setTitle("标题");// getSupportActionBar().setSubtitle("副标题");// getSupportActionBar().setLogo(R.drawable.ic_launcher);
上面关键的一点就是setSupportActionBar(mToolbar);把Toolbar当做ActionBar给设置了
Android Material Design之Toolbar与Palette实践 http://blog.csdn.net/bbld_/article/details/41439715
遇到的坑
java.lang.IllegalStateException: ScrollView can host only one direct child
ScrollView里面只能有一个元素,viewpager + Recyclerview 都嵌套在里面是不行的
有用网址
ButterKnifeZelezny 利用注解方便获取 ID
https://github.com/avast/android-butterknife-zelezny
material 在线搭配,可以获取颜色编码,xml 或
者http://www.materialpalette.com/
国外的图标库,选中和未选中状态下图标是不同的
http://www.icons4android.com/
来自阿里的图标库 http://www.iconfont.cn/
- Android 重构学院新闻 App 记录
- [Android]App重构记录
- 重构博客园Android App
- Android app重构:mvp和mvvm
- android重启APP
- Android重构记录及其模块化
- 三国杀新闻android app任务列表
- Android 新闻App的开发思路
- Android 实践:做一款新闻 APP
- Android Material Design 风格的新闻App
- Android APP开发记录
- 主流的新闻APP 用的 推送SDK 记录
- android开发 重启app
- android关闭重启app
- 新闻发布系统,SQLHelper重构
- 【牛腩新闻发布系统】SQLhelper重构
- 大话重构 记录
- 记录一次重构
- ocp 053 exam c 60-90
- Android数据存储全解析(一)
- Android Fragment 真正的完全解析(上)
- Android Studio 2.0 Preview 4 的逆袭以及各种神注释
- Codeforces Round #335 (Div. 2) A. Magic Spheres
- Android 重构学院新闻 App 记录
- Android SDK Manager
- while(1)和for(;;)两个死循环有什么区别
- 【慕课笔记】第二章 变量和常量 第7节 JAVA中的自动类型转换
- AI学习笔记和制作棋子的教程
- block的循环引用
- m个元素的数组,随机选择n个不重复元素(js实现)
- 贝叶斯网的R实现( Bayesian networks in R)bnlearn(3)
- iOS如何输出BOOL类型值