IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> 【安卓课设】简单分析本次课设 -> 正文阅读

[移动开发]【安卓课设】简单分析本次课设


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

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 onError(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后端云

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-07-04 19:58:19  更:2021-07-04 19:59:01 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/5 13:52:15-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码