码迷,mamicode.com
首页 > 移动开发 > 详细

Animation与nineoldandroid项目 day02

时间:2014-08-15 02:55:37      阅读:326      评论:0      收藏:0      [点我收藏+]

标签:新建   主题   android   项目开发   values   

一.  项目问题

1. 欢迎界面显示时,使back键失效


二. 项目开发功能点:

1. 监听按键事件

    在Activity中重写onKeyDown()方法

      bubuko.com,布布扣


2. 自定义主题解决Android多版本碎片化问题

    目的:在2.x中的主题是NoTitlebar,

              在4.x中的主题是NoActionbar

    Android系统的读取资源的机制:

    apk的res目录中有多个styles.xml,

    当apk运行在2.x版本中,Android系统会读取values目录中的           

    styles.xml

    当apk运行在4.x版本中,Android系统会读取values-v14

    目录中的styles.xml

          bubuko.com,布布扣

    步骤:

    1) 在values/styles.xml文件中新建一个主题

         bubuko.com,布布扣

    2) 在values/styles.xml文件中新建一个父主题

         bubuko.com,布布扣

    3) 在values-v14/styles.xml文件中新建一个父主题

         bubuko.com,布布扣

    4)  在清单文件中为欢迎页面Activity配置新的主题

         bubuko.com,布布扣

           

3. 动画

    gif、flash

    原理:若干图片按照顺序和一定时间间隔(100毫秒)播放

    默认不支持gif,因为画质较差(8位图,256色)

    

    Android中支持的动画

    3.1 FrameAnimation

          功能:能够实现任意复杂动画

          实现步骤:

          1) 拷贝关键帧(Frame)

          2) 新建Android XML

                   Resource Type :Drawable

                   Root Element   :animation-list 

              bubuko.com,布布扣

          3) 编辑图片先后顺序和切换时间间隔

              bubuko.com,布布扣

             增加oneshot属性,动画只播放一次

              bubuko.com,布布扣

           4) 得到动画对象AnimationDrawable,播放

              bubuko.com,布布扣


    注意:FrameAnimation图片数量有限

    实际应用场景:局部的范围内,使用少量图片实现动画

    

    3.2 TweenAnimation

    原理:通过改变View的属性

              大小、位置、角度、透明度


    3.2.1 实现透明度动画步骤:

    a) 代码方式创建动画对象

    bubuko.com,布布扣


    b) XML方式创建动画对象

        bubuko.com,布布扣

       编辑Animation内容 

         bubuko.com,布布扣

    代码中将动画xml转换为Animation对象

         bubuko.com,布布扣

    3.2.2  缩放动画配置                     移动动画配置 

        bubuko.com,布布扣  bubuko.com,布布扣

        旋转动画配置 bubuko.com,布布扣


一个屏幕的宽度或高度:100%p


4. 快捷的注册事件的方法

    1) 在布局中为控件添加onClick属性

          bubuko.com,布布扣

    2)  在Activity中添加以onClick属性值为名称的方法

          bubuko.com,布布扣

         注意:必须是public,参数必须是View v


5. 开源项目原理

   项目设置为库,可被其他项目复用


6. nineoldandroid项目用法

  

Properties动画    属性动画
Android3.x新增

问题:官方不支持2.x
使用开源项目

7. 欢迎页面
    使用的控件ViewPager
    libs/android-support-v4.jar
实现步骤:
1) 在布局中新增ViewPager控件
    android.support.v4.view.ViewPager
    技巧:在代码中输入ViewPager,联想后在import中
2) 初始化所有ViewPager页面,并用ArrayList<View>保存
3) 代码中设置适配器
    mPager.setAdapter()
4) 重写isViewFromObject()方法
    return arg0 == arg1;
5) 重写instantiateItem()方法
    View view = mList.get(position);
    mPager.addView(view);
    return view;    
6) 重写destroyItem()方法
    View view = mList.get(position);
    mPager.removeView(view);

// 改变ViewPager缓存个数,

// 参数的含义是左右各缓存几个
   mPager.setOffscreenPageLimit(3);




java.lang.UnsupportedOperationException: Required method

destroyItem was not overridden

附:常见问题

目标:能够解决所有讲解过的FC问题


1. 代码中引用R编译错误,

   原因是:导入了错误的R

       bubuko.com,布布扣


2. java.lang.RuntimeException: Unable to instantiate(实例化) activity ComponentInfo{com.example.cw_0811/com.example.w_0811.MainActivity}: java.lang.ClassNotFoundException: com.example.w_0811.MainActivity


    FC的原因:运行时异常和Error

    查看日志的方法:

    1) 拉到logcat最底部,向上找

        bubuko.com,布布扣

        main是线程名称,可以是其他

    2) 找异常类型名称:

        bubuko.com,布布扣

    3) ClassNotFoundException的原因是:

       代码中没有这个类,注意仔细检查包名 + 类名


3. java.lang.RuntimeException: Unable to start activity ComponentInfo{org.yuchen.test/org.yuchen.test.MainActivity}: java.lang.ClassCastException: android.widget.Button cannot be cast to android.widget.ImageView


原因:eclipse的ADT的bug

出现场景:修改布局而较少修改代码

解决:project->clean



Animation与nineoldandroid项目 day02,布布扣,bubuko.com

Animation与nineoldandroid项目 day02

标签:新建   主题   android   项目开发   values   

原文地址:http://8988940.blog.51cto.com/8978940/1540132

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!