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

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

     actionbar、slidingmenu、fragment的使用 day03_机器人


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

1) Activity修改为继承SherlockActivity

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

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

4) 获得Actionbar对象

    actionbar、slidingmenu、fragment的使用 day03_机器人_02

5) 设置Actionbar属性

    actionbar、slidingmenu、fragment的使用 day03_机器人_03

6) back按钮点击事件 

     actionbar、slidingmenu、fragment的使用 day03_透明度_04

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

    shouAsAction属性

    actionbar、slidingmenu、fragment的使用 day03_版本号_05

8) 在2.x版本中会FC

you must Theme.Sherlock,Theme.Sherlock.Light

actionbar、slidingmenu、fragment的使用 day03_图片_06


4. 侧滑菜单

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

    使用开源项目SlidingMenu-master

  

5. 导入SlidingMenuDemo注意事项

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

继承SherlockFragmentActivity

actionbar、slidingmenu、fragment的使用 day03_图片_07

  

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

1) Activity继承SlidingFragmentActivity

        onCreate()方法修改为public

        onCreateOptionsMenu()参数改为sherlock

        getMenuInflater()修改为getSupportMenuInflater()

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

3) 设置侧滑菜单的布局

     actionbar、slidingmenu、fragment的使用 day03_机器人_08

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

     actionbar、slidingmenu、fragment的使用 day03_图片_09


7.  Fragment的作用和用法

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

    需要使用Fragment。


8. 创建Fragment的方法

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

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

    actionbar、slidingmenu、fragment的使用 day03_机器人_10


9. 在Activity中使用Fragment步骤:

1) 将Activity修改为继承FragmentActivity

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

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

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

    actionbar、slidingmenu、fragment的使用 day03_图片_11


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

1) 动态增加          

    actionbar、slidingmenu、fragment的使用 day03_透明度_12

2) 动态删除

    actionbar、slidingmenu、fragment的使用 day03_机器人_13

3) 动态替换

    actionbar、slidingmenu、fragment的使用 day03_机器人_14


常见问题:

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. 项目导入库设置后再查看属性,仍然提示错误

actionbar、slidingmenu、fragment的使用 day03_图片_15

    原因:

    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.