远程实习第三周总结

来源:互联网 发布:青岛太阳软件 编辑:程序博客网 时间:2024/04/30 05:13

本周学习内容如下
1.熟悉Android四种数据存储方式
2.熟悉Android项目中各种资源文件的规范使用
3.熟悉Animation与Animator动画

四种数据存储方式

键值对存储-SharePreference

除SQLite数据库外,另一种常用的数据存储方式,其本质就是一个xml文件,常用于存储较简单的参数设置

数据库存储-SQLite

SQLite是一个轻量级的数据库,支持基本SQL语法,是常被采用的一种数据存储方式。Android为此数据库提供了一个名为SQLiteDatabase的类,封装了一些操作数据库的API。

APP间共享存储-ContentProvider

Android系统中能实现所有应用程序共享的一种数据存储方式,由于数据通常在各应用间的是互相私密的,所以此存储方式较少使用,但是其又是必不可少的一种存储方式。例如音频,视频,图片和通讯录,一般都可以采用此种方式进行存储。每个Content Provider都会对外提供一个公共的URI(包装成Uri对象),如果应用程序有数据需要共享时,就需要使用Content Provider为这些数据定义一个URI,然后其他的应用程序就通过Content Provider传入这个URI来对数据进行操作。

文件存储-File

即常说的文件(I/O)存储方法,常用语存储大数量的数据,但是缺点是更新数据将是一件困难的事情

资源文件规范

res/drawable

通常用来存放图片资源。如logo等。

res/layout

存放布局文件

res/values

  • string.xml 存放在应用中多次使用的字符串
  • arrays.xml 存放数组,有字符串和整数两种
  • color.xml 存放组件多次使用的颜色列表
  • styles.xml 存放Android组件中的样式
  • dimens.xml 存放用于适配的尺寸 还可以用于百分比适配 参考

文件夹含义
values-v11 ——-API 11+代表android 3.0 +,意思是在API11设备上,该目录下的dimens.xml代替res/values/dimens.xml

values-480x320、values-800x480等 ————意思是在不同分辨率下,该目录下的dimens.xml代替res/values/dimens.xml

res/xml

存放xml文件,与之前所说的资源类似,存放在其中的资源文件会被编译为二进制数据而存入安装包内。通过R类读取xml文件。

res/raw

存放文件。此目录下文件与之前的资源不同,他们不会被编译为二进制文件.而是以文件形式存放起来。通过R类读取。

assets

可以在此创建子目录并存放不同文件。不会被编译入二进制,而是以目录/文件存放。通过文件名读取。

Animation与Animator

Animation(补间动画)

Animation框架定义了透明度,旋转,缩放和位移几种常见的动画,而且控制的是一个整个View动画,实现原理是每次绘制视图时View所在的ViewGroup中的drawChild函数获取该View的Animation的Transformation值,然后调用canvas.concat(transformToApply.getMatrix()),通过矩阵运算完成动画帧,如果动画没有完成,继续调用invalidate()函数,启动下次绘制来驱动动画,动画过程中的帧之间间隙时间是绘制函数所消耗的时间,可能会导致动画消耗比较多的CPU资源。

动画类型

效果 Xml Java 透明渐变 alph AlphaAnimation 尺寸渐变 scale ScaleAnimation 位置画面转换 translate TranslateAnimation 旋转画面转换 rotate RotateAnimation

使用Animation

  • 创建一个AnimationSet对象(Animation子类);
  • 增加需要创建相应的Animation对象;
  • 更加项目的需求,为Animation对象设置相应的数据;
  • 将Animatin对象添加到AnimationSet对象当中;
  • 使用控件对象开始执行AnimationSet。

Animator(属性动画)

属性动画是Android3.0之后引进的,它更改的是动画的实际属性,在Tween Animation(补间动画)中,其改变的是View的绘制效果,。而在Property Animator(属性动画)中,改变的是动画的实际属性,如Button的缩放,Button的位置和大小属性值都会发生改变。而且Property Animation不止可以应用于View,还可以应用于任何对象,Property Animation只是表示一个值在一段时间内的改变,当值改变时要做什么事情完全是你自己决定的。

优点

适用性

由于 Animator 使用了反射机制导致其效率偏低,但是这也带来了他适用的对象范围的增加, Animation 仅对 View 这一种对象有用,但是 Animator 可以设置任意对象的属性,使其在某段时间内进行变化。

使用效果

Animator 进行位移变换,点击监听会随着动画效果发生相应改变,即使你正处在动画过程中,你也可以去点击按钮得到你想要的效果。

使用

参考

1 0