2017年3月24日,周结(五),学生信息管理系统继续改进以及一些框架的使用
2017-03-24 22:24
525 查看
首先是这星期以来遇到的问题和自己学到的一点知识:
fab
Floating Action Button
compile'com.android.support:design:25.2.0'
属性介绍:
1、app:borderWidth=""------------------边框宽度,通常设置为0 ,用于解决Android 5.X设备上阴影无法正常显示的问题
2、app:backgroundTint=""---------------按钮的背景颜色,不设置,默认使用theme中colorAccent的颜色
3、app:rippleColor=""--------------------点击的边缘阴影颜色
4、app:elevation=""----------------------边缘阴影的宽度
5、app:pressedTranslationZ="16dp"-----点击按钮时,按钮边缘阴影的宽度,通常设置比elevation的数值大
输入框动画
自定义editText
/**
* 设置晃动动画
*/
public voidsetShakeAnimation() {
this.startAnimation(shakeAnimation(5));
}
/**
* 晃动动画
*
*@paramcounts1秒钟晃动多少下
*@return
*/
public staticAnimation shakeAnimation(intcounts)
{
Animation translateAnimation =newTranslateAnimation(0,10,0,0);
translateAnimation.setInterpolator(newCycleInterpolator(counts));
translateAnimation.setDuration(1000);
returntranslateAnimation;
}
设置 editText 透明度
v.getBackground().setAlpha(100);//0~255透明度值
修复了删除学生信息页面中删除后依然显示该学生信息的bug
修复了添加学生信息的学号和年级为字符串的bug
修复了输入框的不透明
添加了测试用的假数据按钮
日常开发经验总结:
1. 全部Activity可继承自BaseActivity,便于统一风格与处理公共事件.
2. 全局变量放全局类中,模块私有放自己的管理类中,让常量清晰且集中.
3. 如果数据没有必要加载,数据请务必延迟初始化,谨记为用户节省内存,总不会有坏处.
4. 地址引用链长时(3个以上指向)小心内存泄漏,和警惕堆栈地址指向,典型的易发事件是:数据更新了,ListView视图却没有刷新,这时Adapter很可能指向并的并不是你更新的数据容器地址(一般为List)。
5.做之前先考虑那些可以公用,资源,layout,类,做一个结构、架构分析以加快开发,提升代码可复用度。
插件:butterKnife
1.安装插件
2.添加依赖
3.右击布局文件
GsonFormat
添加插件之后,按住alt+s即可,把gson格式数据复制粘贴进去
右上角format进行格式化
左下角setting进行一些设置
简化针对不同分辨率创建不同文件夹的框架:Android Drawable Importer
1.添加插件
2.右击res文件夹选择new
四个选项分别为图标包导入,矢量图导入,批量图导入.
我只用了批量图导入:
点击右上角的加号:
选择图片的路径
然后进入这个页面,我都是选的默认的..
点击ok之后会发现多了几个文件夹~
安卓中实现数据序列化的两种方法:
1.实现Serializable接口
2.实现Parcelable接口
一:安装插件
android parcelable code generator
二:alt+Insert
三:选择parcelabel点击ok就完成了~
onSaveInstanceState 方法在 onPause 方法之后执行在 onStop 方法之前执行。(被系统回收时调用..)
Activity 被销毁市临时保存数据:
@Override
public void
onSaveInstanceState(Bundle outState, PersistableBundle outPersistentState) {
super.onSaveInstanceState(outState, outPersistentState);
outState.putString("selected_position", String.valueOf(selecter_position));
}
对应的取出数据时:
if (savedInstanceState !=null)
{
String a = savedInstanceState.getString("selected_position");
Log.d("0000000000",
a);
}
fab
Floating Action Button
compile'com.android.support:design:25.2.0'
属性介绍:
1、app:borderWidth=""------------------边框宽度,通常设置为0 ,用于解决Android 5.X设备上阴影无法正常显示的问题
2、app:backgroundTint=""---------------按钮的背景颜色,不设置,默认使用theme中colorAccent的颜色
3、app:rippleColor=""--------------------点击的边缘阴影颜色
4、app:elevation=""----------------------边缘阴影的宽度
5、app:pressedTranslationZ="16dp"-----点击按钮时,按钮边缘阴影的宽度,通常设置比elevation的数值大
输入框动画
自定义editText
/**
* 设置晃动动画
*/
public voidsetShakeAnimation() {
this.startAnimation(shakeAnimation(5));
}
/**
* 晃动动画
*
*@paramcounts1秒钟晃动多少下
*@return
*/
public staticAnimation shakeAnimation(intcounts)
{
Animation translateAnimation =newTranslateAnimation(0,10,0,0);
translateAnimation.setInterpolator(newCycleInterpolator(counts));
translateAnimation.setDuration(1000);
returntranslateAnimation;
}
设置 editText 透明度
v.getBackground().setAlpha(100);//0~255透明度值
修复了删除学生信息页面中删除后依然显示该学生信息的bug
修复了添加学生信息的学号和年级为字符串的bug
修复了输入框的不透明
添加了测试用的假数据按钮
日常开发经验总结:
1. 全部Activity可继承自BaseActivity,便于统一风格与处理公共事件.
2. 全局变量放全局类中,模块私有放自己的管理类中,让常量清晰且集中.
3. 如果数据没有必要加载,数据请务必延迟初始化,谨记为用户节省内存,总不会有坏处.
4. 地址引用链长时(3个以上指向)小心内存泄漏,和警惕堆栈地址指向,典型的易发事件是:数据更新了,ListView视图却没有刷新,这时Adapter很可能指向并的并不是你更新的数据容器地址(一般为List)。
5.做之前先考虑那些可以公用,资源,layout,类,做一个结构、架构分析以加快开发,提升代码可复用度。
插件:butterKnife
1.安装插件
2.添加依赖
3.右击布局文件
GsonFormat
添加插件之后,按住alt+s即可,把gson格式数据复制粘贴进去
右上角format进行格式化
左下角setting进行一些设置
简化针对不同分辨率创建不同文件夹的框架:Android Drawable Importer
1.添加插件
2.右击res文件夹选择new
四个选项分别为图标包导入,矢量图导入,批量图导入.
我只用了批量图导入:
点击右上角的加号:
选择图片的路径
然后进入这个页面,我都是选的默认的..
点击ok之后会发现多了几个文件夹~
安卓中实现数据序列化的两种方法:
1.实现Serializable接口
2.实现Parcelable接口
一:安装插件
android parcelable code generator
二:alt+Insert
三:选择parcelabel点击ok就完成了~
onSaveInstanceState 方法在 onPause 方法之后执行在 onStop 方法之前执行。(被系统回收时调用..)
Activity 被销毁市临时保存数据:
@Override
public void
onSaveInstanceState(Bundle outState, PersistableBundle outPersistentState) {
super.onSaveInstanceState(outState, outPersistentState);
outState.putString("selected_position", String.valueOf(selecter_position));
}
对应的取出数据时:
if (savedInstanceState !=null)
{
String a = savedInstanceState.getString("selected_position");
Log.d("0000000000",
a);
}
相关文章推荐
- C语言的指针、链表的原理和各类操作以及学生信息管理系统改进报告
- 笨拙的学生信息管理系统,以后会继续改进的
- 学生信息管理系统 SSH 框架使用及范型使用
- c语言使用链表编写一个可以实现班级学生管理系统,增加,删除,修改学生信息
- 学生信息管理系统之改进
- 使用PHP制作 简易员工管理系统之四(完善主界面以及显示员工信息)
- 使用python实现一个简单的学生信息管理系统
- Winform开发框架之权限管理系统改进的经验总结(1)-TreeListLookupEdit控件的使用
- 学生信息管理系统之数据库远程使用
- 使用python实现一个简单的学生信息管理系统
- 基于Struts和hibernate框架的学生信息管理系统
- 指针、链表的原理和各类操作相关心得以及学生信息管理系统
- python下学生管理系统:从文件中读取30位学生的信息(含邮箱),并实现简单的增、删、查找、统计(邮箱使用人数)。---附程序哦!
- 使用Struts2+Hibernate开发学生信息管理系统
- C下学生管理系统:从文件中读取30位学生的信息(含邮箱),并实现简单的增、删、查找、统计(邮箱使用人数)。---附程序哦!
- 关于学生信息管理系统的改进问题
- 学生信息管理系统--书签的使用
- 使用mvvm框架avalon开发公司内部运营管理系统的一些心得
- 学生信息管理系统中遇到的一些问题
- 慕课网 项目实战 使用struts2和hibernate开发学生信息管理系统