雨之后小说软件


title: 小说软件-雨之后
date: 2022-02-15 12:13:39
tags: Android java 免费 小说

雨之后

前言

为了对所学知识进行巩固,自己开发的免费小说—雨之后
源是笔趣阁,开发语言是 java ,自己也刚刚接触到 软件开发,安卓现在迭代的太快了。源代码和软件的下载链接在文末

软件详解

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

主界面
此处输入图片的描述

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

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

此处输入图片的描述

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

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

书架界面
此处输入图片的描述

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

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

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

另外一些界面图

此处输入图片的描述

工程介绍 ----

工程结构

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

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

    //小说目录
    private ArrayList<Map<String,String>> novelMulu=new ArrayList<>();
    //getter
    public Map<String, String> getNovelFormation() {
        return novelFormation;
    }

    //小说目录
    public ArrayList<Map<String,String>> MuluNouvel(String url){
        Document  doc = null;
        try {
            doc = Jsoup.connect(url)
                    .data("query", "Java")
                    .userAgent("Mozilla")
                    .cookie("auth", "token")
                    .timeout(5000)
                    .post();
        } catch (IOException e) {
            e.printStackTrace();
        }
        if (doc!=null){
            Elements links2=doc.select("dd");

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

        return novelMulu;

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

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


            //System.out.println(novelMulu);

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

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

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

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

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

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

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

        } catch (IOException e) {
            e.printStackTrace();
        }
        return novelFormation;
    }
    //爬取小说内容
    public List<String> contentNovel(ArrayList<Map<String,String>> novelMulu,int zhangjie,String url) throws NovelException {
        String contentUrl=url+novelMulu.get(zhangjie).get("url");
        List<String> novelContent=new ArrayList<>();
        Document  doc = null;
        try {
            doc = Jsoup.connect(contentUrl)
                    .data("query", "Java")
                    .userAgent("Mozilla")
                    .cookie("auth", "token")
                    .post();
        } catch (IOException e) {
            e.printStackTrace();
        }

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

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

            }
        }else {
            throw new NovelException("抱歉小说加载失败请重新尝试");
        }
        return novelContent;
    }
}

**

源代码

**

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

传送门

软件下载链接

点击下方:

小说软件下载链接

手机下载此文件即可使用

视频演示地址

点击观看视频

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

此处输入图片的描述

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

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值