1. FrameAnimation

原理:多个关键帧按照顺序快速(100毫秒)切换

三个要素:图片/顺序/时间

2. TweenAnimation

原理:系统通过改变View的大小 位置 角度 透明度

code和xml创建Animation

xml:简单,不可动态改变

code:灵活,可以动态改变

缺点:只是视图上改变了控件,控件实际的位置不变

3. PropertiesAnimation

能够完全替代TweenAnimation,并且是真正的移动了控件的位置

使用Nineold开源项目,支持1.0以后所有版本

4. 开源项目

原理:一个项目,一个库(被调用的jar包),

5. ViewPager

类似于ListView


二.项目问题:

1. 欢迎页面跳转主页面

2. 欢迎页面主题

3. 机器人下落动画


三. 项目技术点:

1. 判断当前版本号

if (Integer.parseInt(Build.VERSION.SDK) >=

Build.VERSION_CODES.HONEYCOMB) {


2. 如何在2.x版本实现Actionbar

构成:back按钮,图标,标题,子标题,菜单

好处:菜单可视化,增加了back按钮(取消back按键)


使用开源项目支持在Android2.x版本中实现Actionbar

开源项目:ActionbarSherlock

只需导入两个:

1) 库 : ActionBarSherlock-master/actionbarsherlock

2) Demo:ActionBarSherlock-master\actionbarsherlock-samples\demos

注意:项目和库必须导入,如果项目和库不在同一路径编译会出错


3. 使用ABS库实现Actionbar的步骤

1) Activity修改为继承SherlockActivity

2) 将onCreateOptionsMenu方法参数的Menu类型改为sherlock

3) 将getMenuInflater()修改为getSupportMenuInflater()

4) 获得Actionbar对象

5) 设置Actionbar属性

6) back按钮点击事件

7) 增加菜单项,注意设置顺序orderInCategory属性和

shouAsAction属性

8) 在2.x版本中会FC

you must Theme.Sherlock,Theme.Sherlock.Light


4. 侧滑菜单

早期是由第三方App实现,Path FaceBook

使用开源项目SlidingMenu-master

5. 导入SlidingMenuDemo注意事项

slidingmenu的库项目有错误,修改SlidingFragmentActivity

继承SherlockFragmentActivity

6. 使用SlidingMenu开源项目的步骤:

1) Activity继承SlidingFragmentActivity

onCreate()方法修改为public

onCreateOptionsMenu()参数改为sherlock

getMenuInflater()修改为getSupportMenuInflater()

2) 清单中设置主题为:Theme.sherlock.Light.DarkActionbar

3) 设置侧滑菜单的布局

4) 设置SlidingMenu属性(参照SlidingMenu的Demo BaseActivity类)


7. Fragment的作用和用法

应用场景: 当一个Activity的局部或整体需要频繁的被替换

需要使用Fragment。


8. 创建Fragment的方法

1) 新建一个类,继承supportV4包的Fragment

2) 重写onCreateView()方法,并关联布局


9. 在Activity中使用Fragment步骤:

1) 将Activity修改为继承FragmentActivity

2) 在布局中增加一个FrameLayout并设置id,

用来确定Fragment加入到布局中的位置和大小

3) 在onCreate()方法的setContentView之后新增代码:


10. 动态添加、删除和替换Fragment

1) 动态增加

2) 动态删除

3) 动态替换


常见问题:

1. 导入开源项目库是,控制台提示错误:

[2014-08-13 11:16:04 - EX10_使用ABS库实现Actionbar] Found 2 versions of android-support-v4.jar in the dependency list,

[2014-08-13 11:16:04 - EX10_使用ABS库实现Actionbar] but not all the versions are identical (check is based on SHA-1 only at this time).

[2014-08-13 11:16:04 - EX10_使用ABS库实现Actionbar] All versions of the libraries must be the same at this time.

[2014-08-13 11:16:04 - EX10_使用ABS库实现Actionbar] Versions found are:

[2014-08-13 11:16:04 - EX10_使用ABS库实现Actionbar] Path: F:\Users\longleg\workspaceHomeWork3\EX10_使用ABS库实现Actionbar\libs\android-support-v4.jar

[2014-08-13 11:16:04 - EX10_使用ABS库实现Actionbar] Length: 621451

[2014-08-13 11:16:04 - EX10_使用ABS库实现Actionbar] SHA-1: 5896b0a4e377ac4242eb2bc785220c1c4fc052f4

[2014-08-13 11:16:04 - EX10_使用ABS库实现Actionbar] Path: F:\Users\longleg\workspaceHomeWork3\lib_ABS\libs\android-support-v4.jar

[2014-08-13 11:16:04 - EX10_使用ABS库实现Actionbar] Length: 271754

[2014-08-13 11:16:04 - EX10_使用ABS库实现Actionbar] SHA-1: 53307dc2bd2b69fd5533458ee11885f55807de4b

[2014-08-13 11:16:04 - EX10_使用ABS库实现Actionbar] Jar mismatch! Fix your dependencies


问题原因:是由于android-supportV4包有多个版本,

不同版本之间的代码不同

解决方法:1) 使它们相同

2) 使库中的jar是最新版本,将项目中的supportV4删除


2. 代码中输入ActionBar actionBar = getActionBar();

Multiple markers at this line

- The value of the local variable actionBar is not used

- Call requires API level 11 (current min is 8):

android.app.Activity#getActionBar


3. 项目导入库设置后再查看属性,仍然提示错误

原因:

1) 项目和库不在同一个目录下

2) eclipse环境问题,重启eclipse即可


4. java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.ex_templete/com.example.ex_templete.MainActivity}: java.lang.IllegalStateException: Both setBehindContentView must be called in onCreate in addition to setContentView.