- 熟悉Android Studio开发工具操作。
- 熟悉Android Studio基本UI开发,并进行UI基本设计。
- 该界面为应用启动后看到的第一个界面。
- 各控件的要求
- 标题字体大小20sp,与顶部距离20dp,居中;
- 图片与上下控件的间距均为20dp,居中;
- 输入框整体距左右屏幕各间距20dp,内容(包括提示内容)如图所示,内容字体大小18sp;
- 按钮与输入框间距10dp,文字大小18sp。按钮背景框左右边框与文字间距10dp,上下边框与文字间距5dp,圆角半径180dp,背景色为**#3F51B5**;
- 四个单选按钮整体居中,与输入框间距10dp,字体大小18sp,各个单选按钮之间间距10dp,默认选中的按钮为第一个。
TextView、EditText、ConstraintLayout、Button、ImageView、RadioGroup、RadioButton。
- 各控件的位置,间距,字体大小等属性与要求无误
- 图片大小不作为验收内容给之一
第五周各班实验课进行检查,未通过者需在下一周进行修改与重新检查,如再次未通过则扣除这一周任务的分数。
- 了解Android编程基础。
- 熟悉Button、RadioButton、EditText等基本控件,能够处理这些控件的基本事件。
- 学会弹出对话框,并定制对话框中的内容,能对确定和取消按钮的事件做处理。
实现一个Android应用,界面呈现如图中的效果。
- 该界面为应用启动后看到的第一个界面。
- 各控件处理的要求
- 布局是否正常
- 搜索内容为空时,提示是否正常
- 输入搜索内容后,点击搜索按钮是否能根据不同的搜索内容显示相应的弹出框,以及弹出框内容是否符合要求
- 点击弹出框的相应按钮是否能提示正确的内容
- RadioButton切换时,提示是否正常
第六周各班实验课进行检查,未通过者需在下一周进行修改与重新检查,如再次未通过则扣除这一周任务的分数。
- 复习事件处理。
- 学习Intent、Bundle在Activity跳转中的应用。
- 学习RecyclerView、ListView以及各类适配器的用法。
- 学习FloatingActionBar的用法。
本次实验模拟实现一个健康食品列表,有两个界面,第一个界面用于呈现食品列表 如下所示
数据在"manual/素材"目录下给出。
点击右下方的悬浮按钮可以切换到收藏夹
上面两个列表点击任意一项后,可以看到详细的信息:
- 食品列表
每一项为一个圆圈和一个名字,圆圈和名字都是垂直居中。圆圈内的内容是该食品的种类,内容要处于圆圈的中心,颜色为白色。食品名字为黑色,圆圈颜色自定义,只需能看见圆圈内的内容即可。 - 收藏夹
与食品列表相似 - 食品详情界面
- 界面顶部
顶部占整个界面的1/3。每个食品详情的顶部颜色在数据中已给出。返回图标处于这块区域的左上角,食品名字处于左下角,星标处于右下角,边距可以自己设置。 返回图标与名字左对齐,名字与星标底边对齐。 建议用RelativeLayout实现,以熟悉RelativeLayout的使用。 - 界面中部
使用的黑色argb编码值为#D5000000,稍微偏灰色的“富含”“蛋白质”的argb编码值为#8A000000。"更多资料"一栏上方有一条分割线,argb编码值为#1E000000。右边收藏符号的左边也有一条分割线,要求与收藏符号高度一致,垂直居中。字体大小自定。"更多资料"下方分割线高度自定。这部分所有的分割线argb编码值都是#1E000000。 - 界面底部
使用的黑色argb编码值为#D5000000。
- 界面顶部
- 标题栏
两个界面的标题栏都需要去掉
- 使用RecyclerView实现食品列表。点击某个食品会跳转到该食品的详情界面,呈现该食品的详细信息。长按列表中某个食品会删除该食品,并弹出Toast,提示 "删除XX" 。
- 点击右下方的FloatingActionButton,从食品列表切换到收藏夹或从收藏夹切换到食品列表,并且该按钮的图片作出相应改变。
- 使用ListView实现收藏夹。点击收藏夹的某个食品会跳转到食品详情界面,呈现该食品的详细信息。长按收藏夹中的某个食品会弹出对话框询问是否移出该食品,点击确定则移除该食品,点击取消则对话框消失。对话框内容如下图所示。
- 商品详情界面中点击返回图标会返回上一层。点击星标会切换状态,如果原本是空心星星,则会变成实心星星;原本是实心星星,则会变成空心星星。点击收藏图表则将该食品添加到收藏夹并弹出Toast提示 "已收藏" 。
- 食品列表和收藏夹中,圆圈是圆的,圆圈内的字居中,圆圈和食品名字垂直居中。
- 食品详情界面中,顶部占三分之一的实现方法。以及界面顶部各控件的位置与对齐关系。
- 食品详情界面中,中部收藏符号旁边的分割线上下与符号等高且垂直居中。
- 食品列表用RecyclerView实现,收藏夹用ListView实现,食品详情底部的四个操作列表用ListView实现。
- 单击后跳转各项资料显示正确,星星点击后行为正常,返回图表功能正常。
- 食品列表中的食品长按后能正确删除食品,且删除后列表工作正常(点击其他食品显示信息正确,长按其他食品删除操作正确)。
- 收藏夹中的食品长按后弹出框显示内容正确,点击确定后能正确删除食品,且删除后列表工作正常(点击其他食品显示信息正确,长按其他食品删除操作正确)。
- 长按事件能正确处理,不会报错
- 悬浮按钮的功能正确。
- 从收藏夹界面点击食品X进入食品X的详情界面,点击收藏图标后,点击返回按钮,回到收藏夹界面且收藏夹内多出食品X这一项。若在食品X的详情界面没有点击收藏图标,返回后收藏夹界面也不会多出食品X的条目。
- 详情界面点击返回按钮,是返回上一界面,而非跳转到新的界面中,即不是跳转到新建的食品列表界面或收藏夹界面。
- 点击收藏夹界面的"收藏夹"一项,应用不会出错。
- 不做检查的几项:
1. 若圆圈为button控件,点击该圆圈后可以不跳转到详情界面。
2. UI要求中要求自定的距离,颜色等均不检查。
3. 详情界面顶部,中部可不用RelativeLayout实现。
4. 详情界面中点击星星图标,图标的状态不需要保存,即再次进入这一项的详情界面,星星图标仍可以是空心星星。
5. 点击收藏按钮后,如果不是点击返回图标返回上一级界面,收藏夹内容可以不改变。
6. 多次点击某个食品的详情页面的收藏按钮,收藏夹内可以只出现一个或多个该食品。 - 如果有以上验收内容存在疑问的话,以demo为准。
第七周各班实验课进行检查,未通过者需在下一周进行修改与重新检查,如再次未通过则扣除这一周任务的分数。
第七周周五晚上23:59分前,将个人项目1的项目代码与报告按要求Pull Request回到主项目的master分支。
经这周码云张总监技术分享,在同学们对git基本操作掌握后,现确定作业提交步骤如下
- 布置的个人项目先fork到个人仓库下;
- clone自己仓库的个人项目到本地目录;
- 在个人项目中,在code、report目录下,进入自己所在的班别,然后新建个人目录,目录名为“学号+姓名”,例如“12345678WangXiaoMing”;
- 在“code\班别\12345678WangXiaoMing”目录下,新建Android项目,按要求完成界面设计,代码编写等,注意.gitignore的编写,避免添加不必要的中间文件、临时文件到git中,如果在检查时发现提交了不必要的文件,会扣一定的分数;
- 实验报告按给出的模版(manual中的report_template.md)的内容要求,以md的格式,写在“report\班别\12345678WangXiaoMing”目录下,结果截图也放在该目录下;
- 完成任务需求后,Pull Request回主项目的master分支,PR标题为“班级+学号+姓名”, 如“周三班12345678王小明”;
- 一定要在deadline前PR。因为批改后,PR将合并到主项目,所有同学都能看到合并的结果,所以此时是不允许再PR提交作业的。