ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

【安卓课设】简单分析本次课设

2021-07-03 14:31:18  阅读:400  来源: 互联网

标签:github 课设 floor implementation 安卓 本次 htextview Android com


目录


终于考完试了,能凑出点时间来写写博客了(虽然还处于微机成绩的忐忑之中)。 微机我真的无话可说 前面都是废话,进入正文

1.课设简介

       我做的安卓课设是一个论坛系统,搭建了一个后台服务器,所以实现了所有用户的信息实时更新和获取的功能。论坛功能有发布,回复,点赞,收藏。自己发布的内容查看,回复自己的帖子的信息,对个人信息的修改。上述这些功能的实现,在后台的CRUD上下了很大功夫,体会到了后端程序员总是增删改查的感觉。

2.课设所用到的开源控件的汇总

2.1所用到的依赖包

//    都是花里胡哨的字体
    def htextview_version = "0.1.6"
    compile "com.hanks:htextview-base:$htextview_version"        // base library

    compile "com.hanks:htextview-fade:$htextview_version"        // optional
    compile "com.hanks:htextview-line:$htextview_version"        // optional
    compile "com.hanks:htextview-rainbow:$htextview_version"     // optional
    compile "com.hanks:htextview-typer:$htextview_version"       // optional

    compile "com.hanks:htextview-scale:$htextview_version"       // optional
    compile "com.hanks:htextview-evaporate:$htextview_version"   // optional
    compile "com.hanks:htextview-fall:$htextview_version"        // optional
//    新手引导
    //noinspection GradleCompatible
    compileOnly 'com.android.support:appcompat-v7:25.3.1'
    implementation 'com.github.huburt-Hu:NewbieGuide:v2.4.0'
    //    选择器的实现
    compile 'com.contrarywind:Android-PickerView:4.1.9'
    //    图片磨砂实现
    implementation 'jp.wasabeef:glide-transformations:2.0.1'
    implementation 'de.hdodenhof:circleimageview:2.1.0'


// 注意:分包之后不会有默认的Header和Footer需要手动添加!还是原来的三种方法!上拉加载,下拉刷新
    implementation  'com.scwang.smart:refresh-layout-kernel:2.0.3'      //核心必须依赖
    implementation  'com.scwang.smart:refresh-header-classics:2.0.3'    //经典刷新头
    implementation  'com.scwang.smart:refresh-header-radar:2.0.3'       //雷达刷新头
    implementation  'com.scwang.smart:refresh-header-falsify:2.0.3'     //虚拟刷新头
    implementation  'com.scwang.smart:refresh-header-material:2.0.3'    //谷歌刷新头
    implementation  'com.scwang.smart:refresh-header-two-level:2.0.3'   //二级刷新头
    implementation  'com.scwang.smart:refresh-footer-ball:2.0.3'        //球脉冲加载
    implementation  'com.scwang.smart:refresh-footer-classics:2.0.3'    //经典加载


    //点击弹出选择
    compile 'com.diegodobelo.expandingview:expanding-view:0.9.4'

    //BottomBarLayout轻量级的底部导航栏
    compile 'com.github.chaychan:BottomBarLayout:2.0.2' //建议使用最新版本
    //Gson框架
    implementation 'com.google.code.gson:gson:2.8.6'

    //xutils框架
    implementation 'org.xutils:xutils:3.9.0'

//    网络图片
    implementation 'com.github.bumptech.glide:glide:4.12.0'
    annotationProcessor 'com.github.bumptech.glide:compiler:4.12.0'

//    轮播图
    implementation 'io.github.youth5201314:banner:2.2.1'
    implementation 'androidx.recyclerview:recyclerview:1.1.0'
    implementation 'com.google.android.material:material:1.1.0'

2.2各个开源控件Github地址

字体动画HTextView:https://github.com/hanks-zyh/HTextView
新手引导:https://github.com/huburt-Hu/NewbieGuide
选择器:https://github.com/Bigkoo/Android-PickerView
图片磨砂:https://github.com/wasabeef/glide-transformations
刷新加载:https://github.com/scwang90/SmartRefreshLayout
一个很好看的点击弹出菜单(带动画):https://github.com/diegodobelo/AndroidExpandingViewLibrary
轻量级底部导航栏:https://github.com/chaychan/BottomBarLayout
Gson框架:https://github.com/google/gson
xutils框架:https://github.com/wyouflf/xUtils3
网络图片:https://github.com/bumptech/glide
轮播图:https://github.com/youth5201314/banner
以上就是我这个项目中所用到的所有开源控件的github地址,可供大家参考使用。
基本上这些关于UI设计的框架的都用到了动画,所以出来的结果还是很好看的。

3.课设所用技术

3.1安卓端

       安卓端使用的就是原生的AS开发,再加上一些开源控件的使用,除此之外,没有啥特别的。

3.2后端

       后端所使用的是Springboot+Mybaits+MySQL数据库来搭建的,因为在寒假准备服务外包比赛的时候学了很多的框架知识,所以现在用起来感觉比较的轻松,而且这两个框架都是非常成熟的架构。怎么使用我这里就不细说了,大家可以自己前往学习。

3.3关于前后台交互

       前后台交互主要是在安卓端使用xUtils框架发送请求,后台用Springboot注解开发很容易搭建好。
从项目中拿出来的一个小Demo
安卓端代码

x.Ext.init(getApplication());
            RequestParams requestParams = new RequestParams("http://10.135.143.172:8090/addPostInformation?");
            requestParams.addQueryStringParameter("title_discuss", title_discuss);
            requestParams.addQueryStringParameter("name", name);
            requestParams.addQueryStringParameter("time", time);
            requestParams.addQueryStringParameter("name_floor", name_floor);
            requestParams.addQueryStringParameter("information", information);
            requestParams.addQueryStringParameter("time_floor", time_floor);
            requestParams.addQueryStringParameter("account_floor",account_floor);
//            把所有发送base64的请求都删掉这一句话,将请求简化
//            requestParams.addQueryStringParameter("base64_floor", base64_floor);
            requestParams.addQueryStringParameter("account",account);
            x.http().post(requestParams, new Callback.CommonCallback<String>() {
                @Override
                public void onSuccess(String result) {
                    if (result.equals("1"))
                        Toast.makeText(Discuss_post_information.this, "评论成功", Toast.LENGTH_SHORT).show();
                }

                @Override
                public void one rror(Throwable ex, boolean isOnCallback) {
                    Toast.makeText(Discuss_post_information.this, "网络出现异常错误,请稍后", Toast.LENGTH_SHORT).show();
                }

                @Override
                public void onCancelled(CancelledException cex) {
                }

                @Override
                public void onFinished() {

                }
            });

后台的代码

//    增加该帖子中的回复的楼层,同时更新该楼的评论数
    @PostMapping("/addPostInformation")
    public int addPostInformation(String title_discuss, String name, String time,String name_floor,String information,String time_floor,String account_floor,String account){
//        先获得该帖子的id
        int id_floor = contentMapper.queryContent_id(title_discuss,account,time);
        contentMapper.update_comments(id_floor);
        PostInformation postInformation=new PostInformation();
        postInformation.setName_floor(name_floor);
        postInformation.setInformation(information);
        postInformation.setTime_floor(time_floor);
        postInformation.setBase64_floor(userMapper.query(account_floor));
        postInformation.setContent_id(id_floor);
        postInformation.setAccount(account);
        postInformation.setAccount_floor(account_floor);
        postInformationMapper.addPostInformation(postInformation);
//        当前的回复的id
        int floor = postInformationMapper.queryfloor(name_floor, id_floor, time_floor);
        commentsReceivedMapper.addCommentsReceived(new CommentsReceived(account,id_floor,floor));
        return 1;
    }

       就像上述这样发送请求,接收数据并且处理
       关于几个框架的使用在暑假有时间应该会写博客记录。其实现在基本上只会使用框架了,关于框架的原理和底层都忘得差不多了。准备这个暑假好好补习一下。

4.最终效果展示

最终得分是98分,感觉有些地方还是没有做的太好emmm。下次加油
在这里插入图片描述

5.实用工具

5.1课堂笔记

这里贴一下我所有的安卓上课的笔记,大家可以参考学习,批评指正
Android第一讲笔记(常用控件以及线性布局)
Android第二讲笔记(约束布局ConstraintLayout)
Android第三讲笔记(Activity简单操作)
Android第四讲笔记(Activity间的跳转与传值)
Android第五讲笔记(列表RecyclerView)
Android第六讲笔记(Fragment入门)
Android第七讲笔记(圆形图片,网络图片,下拉刷新,上拉加载)
Android第八讲笔记-1(网络编程) Android第八讲笔记-2(JSON)
Android第九讲笔记(xUtils框架,Gson框架)
Android第十讲笔记(WebView,SharedPreferences)
Android第十一讲笔记(SqLite数据库,Room框架)
Android第十二讲笔记(视频,音频播放,开源控件)
Android第十三讲笔记(动画入门,开源控件,应用程序打包)
Android第十四讲笔记(广播,百度地图)

5.2开源控件

常见的开源控件

5.3实用工具

构造json数据的平台
聚合图床
bomb后端云

标签:github,课设,floor,implementation,安卓,本次,htextview,Android,com
来源: https://blog.csdn.net/ladiez/article/details/118424144

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有