您的位置:首页 > 职场人生

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);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐