nineoldandroid使用_Animation与nineoldandroid项目 day02

一.  项目问题

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

二. 项目开发功能点:

1. 监听按键事件

在Activity中重写onKeyDown()方法

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

步骤:

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

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

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

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

3. 动画

gif、flash

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

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

Android中支持的动画

3.1 FrameAnimation

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

实现步骤:

1) 拷贝关键帧(Frame)

2) 新建Android XML

Resource Type :Drawable

Root Element   :animation-list

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

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

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

注意:FrameAnimation图片数量有限

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

3.2 TweenAnimation

原理:通过改变View的属性

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

3.2.1 实现透明度动画步骤:

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

b) XML方式创建动画对象

编辑Animation内容

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

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

  

旋转动画配置

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

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

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

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

注意:必须是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保存

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

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最底部,向上找

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

2) 找异常类型名称:

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值