鱼C论坛

 找回密码
 立即注册
查看: 9350|回复: 194

[学习笔记] 免费小说 app 雨之后

  [复制链接]
发表于 2022-2-27 17:23:06 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 小伤口 于 2022-2-28 09:41 编辑

雨之后

前言

为了对所学知识进行巩固,自己开发的免费小说---雨之后
源是笔趣阁,开发语言是 java ,自己也刚刚接触到 软件开发,安卓现在迭代的太快了。源代码 和软件的下载
链接在文末,顺便发点鱼币,把我的家当全部拿出来 (存了好久 )

软件详解

由于自己是直接用手机截的图所以画质可能看起来不怎么样

主界面

1.jpg

软件由搜索框来搜索想要的小说,遇到喜欢的书籍可以添加到书架里面
关于是指软件的一些说明,不用过多关注

阅读界面
这个其实我做的不是很好 ,界面不是很美观

4.jpg

长按手机屏幕就会出现,导航界面

5.jpg

只要是添加到书架的书籍,大家观看的时候,软件会自动保存你的阅读记录,
下次观看的时候,不用担心自己看到哪里了

书架界面

2.jpg

当你添加书籍到书架时,书架界面就会显示小说的封面和名称,您之后也可以直接通过书架界面
进行小说的阅读,不过有一个 bug:

如果是从书架界面进行小说阅读,按后退键,退出阅读页面,需要再点击一下下方的书架按钮,软件才会更新您
的阅读记录,或者您可以直接退出软件,软件也可以保存阅读记录,因为当你退出阅读页面的时候,软件虽然已经保存到
你的消息记录,但是书架的 fragment 界面并不会立刻刷新,如果此时,你再次进入刚才阅读的小说,阅读记录将会被覆盖



在书架界面长按就会出现删除按钮,如果您想删除书架的小说,可以点击此按钮

小说简介

002.jpg

小说目录

003.jpg

另外一些界面图

20220215_175913_0000.png

3.jpg


工程介绍

工程结构

首先主界面用三个 Fragment 分别来存放 搜索 ,书架,关于
通过 java 的 Jsoup 爬取笔趣阁的小说和小说信息,再将其存放到集合中 发送到各个 Activity 中
书架是通过将用户要收藏的小说信息,保存到文件中,在文件中读取,这里放出用 java 爬取笔趣阁
小说的代码吧

  1. /**
  2. * 爬取小说简介,封面等
  3. */
  4. class SearchFormation{
  5.     //存放用户点击的小说信息
  6.     private Map<String,String> novelFormation=new HashMap<>();

  7.     //小说目录
  8.     private ArrayList<Map<String,String>> novelMulu=new ArrayList<>();
  9.     //getter
  10.     public Map<String, String> getNovelFormation() {
  11.         return novelFormation;
  12.     }

  13.     //小说目录
  14.     public ArrayList<Map<String,String>> MuluNouvel(String url){
  15.         Document  doc = null;
  16.         try {
  17.             doc = Jsoup.connect(url)
  18.                     .data("query", "Java")
  19.                     .userAgent("Mozilla")
  20.                     .cookie("auth", "token")
  21.                     .timeout(5000)
  22.                     .post();
  23.         } catch (IOException e) {
  24.             e.printStackTrace();
  25.         }
  26.         if (doc!=null){
  27.             Elements links2=doc.select("dd");

  28.             //小说目录
  29.             for (int i=0;i<links2.size();i++) {
  30.                 //如果dd标签的内容不为空才提取添加
  31.                 if (!"".equals(links2.get(i).select("a").text())) {
  32.                     Map<String, String> novelZhangJie = new HashMap<>();
  33.                     novelZhangJie.put("muLuName", links2.get(i).select("a").text());
  34.                     novelZhangJie.put("url", links2.get(i).select("a").attr("href"));
  35.                     novelMulu.add(novelZhangJie);
  36.                 }
  37.             }
  38.         }else {
  39.             Log.d("error","出现错误");
  40.         }

  41.         return novelMulu;

  42.     }
  43.     //爬取用户点击的小说信息
  44.     public Map<String, String>  searchNovel(String url){
  45.         try {
  46.             Document  doc = Jsoup.connect(url)
  47.                     .data("query", "Java")
  48.                     .userAgent("Mozilla")
  49.                     .cookie("auth", "token")
  50.                     .timeout(5000)
  51.                     .post();

  52.             Elements links=doc.select("img");


  53.             //System.out.println(novelMulu);

  54.             //小说封面
  55.             String image=links.get(1).attr("src");
  56.             //System.out.println(image);
  57.             novelFormation.put("image",image);

  58.             //小说名称
  59.             String name=links.get(1).attr("title");
  60.             //System.out.println(name);
  61.             novelFormation.put("name",name);

  62.             //小说作者
  63.             String author=doc.select("small").text().split("/")[1];
  64.             //System.out.println(author);
  65.             novelFormation.put("author",author);

  66.             //小说简介
  67.             String introduction=doc.select("div[id=intro]").text();
  68.             //System.out.println(introduction);
  69.             novelFormation.put("introduction",introduction);

  70.             //更新状况
  71.             String update=doc.select("div[class=update]").text();
  72.             //System.out.println(update);
  73.             novelFormation.put("update",update);

  74.             //是否完结
  75.             String isEnd=doc.select("span[class]").get(1).text();
  76.             //System.out.println(isEnd);
  77.             novelFormation.put("isEnd",isEnd);

  78.             //人气
  79.             String person=doc.select("span[class]").get(0).text();
  80.             //System.out.println(person);
  81.             novelFormation.put("person",person);

  82.         } catch (IOException e) {
  83.             e.printStackTrace();
  84.         }
  85.         return novelFormation;
  86.     }
  87.     //爬取小说内容
  88.     public List<String> contentNovel(ArrayList<Map<String,String>> novelMulu,int zhangjie,String url) throws NovelException {
  89.         String contentUrl=url+novelMulu.get(zhangjie).get("url");
  90.         List<String> novelContent=new ArrayList<>();
  91.         Document  doc = null;
  92.         try {
  93.             doc = Jsoup.connect(contentUrl)
  94.                     .data("query", "Java")
  95.                     .userAgent("Mozilla")
  96.                     .cookie("auth", "token")
  97.                     .post();
  98.         } catch (IOException e) {
  99.             e.printStackTrace();
  100.         }

  101.         if (doc!=null){
  102.             Elements links2=doc.select("div[id=content]");
  103.             Elements links3=doc.select("h1");
  104.             List<TextNode> list=links2.textNodes();
  105.             novelContent.add(links3.text());
  106.             for (int i=2;i<list.size();i++){

  107.                 novelContent.add(list.get(i).text());

  108.             }
  109.         }else {
  110.             throw new NovelException("抱歉小说加载失败请重新尝试");
  111.         }
  112.         return novelContent;
  113.     }
  114. }
复制代码



源代码

整个工程我已经放在了 GitHub 上,有需要可以自行去下载

传送门

apk文件

点我下载

手机下载此文件即可使用


最后求一个小小的评分


也欢迎大家关注我的微信公众号小伤口
Mine.jpg

谢谢大家的观看,我们下个帖子再会~

视频演示地址

评分

参与人数 19荣誉 +79 鱼币 +73 贡献 +34 收起 理由
liuhongrun2022 + 5 + 3
asky533 + 5 + 5 + 3 厉害
wang1212 + 5 + 5 + 3
李星 + 5 + 5 + 3 牛逼!!
hrpzcf + 5 + 5 + 3 牛皮牛皮
hrp + 5 + 5 鱼C有你更精彩^_^
不会起名字的我 + 5 + 5 鱼C有你更精彩^_^
大baba + 1 + 1 + 1 感谢楼主无私奉献!
大志若愚 + 5 + 5 + 3
村里小黑 + 1 牛蛙牛蛙

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-3-1 12:19:00 | 显示全部楼层
本帖最后由 小伤口 于 2022-3-1 13:05 编辑

QRCode_258.png
手机浏览器扫描上方二维码即可下载


或者点击下方链接
最新软件下载地址
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 2 反对 0

使用道具 举报

 楼主| 发表于 2022-3-17 18:17:40 | 显示全部楼层
文章中软件已经失效,请扫描评论区二维码重新下载
2022/3/17
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-3-26 20:51:23 | 显示全部楼层
2022年/3/26

更新说明
1. 修复了,从书架界面阅读小说,退出后书架界面无法及时更新阅读记录的问题

2. 美化了书架界面没有添加书籍时的界面
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-2-28 20:20:44 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-2-28 20:26:01 | 显示全部楼层
本帖最后由 小伤口 于 2022-3-1 21:37 编辑

@hrp @Monsieur. @高山 @python爱好者. @Daniel_Zhang @糖甜弯了嘴
大佬们能捧一下场吗,实在是没人看,呜呜呜
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-2-28 20:33:52 | 显示全部楼层
@柿子饼同学 @昨非
好兄弟,帮弟弟一回

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
柿子饼同学 + 3 + 3

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2022-2-28 20:42:37 | 显示全部楼层

回帖奖励 +3 鱼币

我来薅你的家当
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-2-28 20:44:16 | 显示全部楼层
我再薅
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-2-28 20:45:50 | 显示全部楼层

回帖奖励 +3 鱼币

大佬洪福齐天
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-2-28 20:47:15 | 显示全部楼层
总算吃干抹净了,谢谢谢谢谢谢谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-2-28 20:47:19 | 显示全部楼层

薅!!要多薅,有评论就心满意足了,我想这次评论破百
嘿嘿
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-2-28 20:48:29 | 显示全部楼层
isdkz 发表于 2022-2-28 20:47
总算吃干抹净了,谢谢谢谢谢谢谢谢

俺还要谢谢你呢,终于有人肯回我了,我还想这次评论破败呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-2-28 20:50:08 | 显示全部楼层

回帖奖励 +3 鱼币

isdkz 发表于 2022-2-28 20:47
总算吃干抹净了,谢谢谢谢谢谢谢谢

我大号,又被屏蔽了,评论发不出去,我还要谢谢你,
终于有人肯理我了,我还想这次评论破百
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-2-28 20:51:45 | 显示全部楼层
isdkz 发表于 2022-2-28 20:47
总算吃干抹净了,谢谢谢谢谢谢谢谢

哈哈我还要谢谢你呢,感谢你的支持,我的评论一直被吞,害
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-2-28 21:12:25 | 显示全部楼层
糖甜弯了嘴 发表于 2022-2-28 20:33
@柿子饼同学 @昨非
好兄弟,帮弟弟一回

虽然我看不懂 , 但我大受震撼
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-2-28 21:13:32 | 显示全部楼层

回帖奖励 +3 鱼币

糖甜弯了嘴 发表于 2022-2-28 20:33
@柿子饼同学 @昨非
好兄弟,帮弟弟一回

你这可以上首页了吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-2-28 21:29:48 | 显示全部楼层
小说也是楼主写的吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-2-28 21:31:59 | 显示全部楼层

回帖奖励 +3 鱼币

沙发
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-2-28 21:32:37 | 显示全部楼层
震惊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-2-28 21:35:59 | 显示全部楼层
柿子饼同学 发表于 2022-2-28 21:13
你这可以上首页了吧

哈哈谢谢支持,你的C++学的怎么样了呀
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-2-28 21:37:18 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-2-28 21:37:58 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-18 12:44

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表