Android 动画基础重点整理
2014-05-08 08:56
211 查看
Ref:Android应用程式开发实战(第三版)
Android系统提供2D絵图库(自Drawable包取得)和OpenGLES
1.0 高性能 3D絵图
(自KhronosOpenGL ES包及其它絵图相关取得)。
2D絵图和动画
主要在 android.graphics.drawable
和 android.view.animation 有相关的类可以絵制
二维图和创作二维空间动画。
实现2D絵图和动画的方法
一、将图或动画絵制到ImageView上。此种方式只是将静态图放进图像显示控件。
二、直接在Canvas上絵制。如此便可控制动画,定期去重复絵制本身图形。
Drawable-任何可絵图东西的抽象类
目前已有许多实现子类,如:BitmapDrawable,ShapeDrawable, PictureDrawable等等。
定义和实现一个Drawable有三种方法:
一、图像储存在Project的资源。 (将图像放到/res/drawable下)
一般我们常在JAVA代码中用到的
又或是xml布局中用到的
二、使用xml档案定义Drawable属性。
可定义成xml的 Drawable 子类
以 TransitionDrawable为例:
fade_practice.xml:
在 MainActivity.java 中使用该 xml 的相关代码:
当然我们也可以用动态的方式去实现一样的效果:
三、Drawable的Constructor
也就是上面提到的,使用动态的实现方式
完整代码:https://github.com/shanwu/shanwu_coding_base/tree/transition_drawable_practice/ch16-3
To be Continued...
Android系统提供2D絵图库(自Drawable包取得)和OpenGLES
1.0 高性能 3D絵图
(自KhronosOpenGL ES包及其它絵图相关取得)。
2D絵图和动画
主要在 android.graphics.drawable
和 android.view.animation 有相关的类可以絵制
二维图和创作二维空间动画。
实现2D絵图和动画的方法
一、将图或动画絵制到ImageView上。此种方式只是将静态图放进图像显示控件。
二、直接在Canvas上絵制。如此便可控制动画,定期去重复絵制本身图形。
Drawable-任何可絵图东西的抽象类
目前已有许多实现子类,如:BitmapDrawable,ShapeDrawable, PictureDrawable等等。
定义和实现一个Drawable有三种方法:
一、图像储存在Project的资源。 (将图像放到/res/drawable下)
一般我们常在JAVA代码中用到的
mImageView.setImageResource(R.drawable.xxx);
又或是xml布局中用到的
<ImageView android:height=”wrap_content” android:width=”wrap_content” android:src=”@drawable/xxx”/>
二、使用xml档案定义Drawable属性。
可定义成xml的 Drawable 子类
以 TransitionDrawable为例:
fade_practice.xml:
<transition xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/ic_launcher" /> <item android:drawable="@drawable/fa" /> </transition>
在 MainActivity.java 中使用该 xml 的相关代码:
// 利用 xml <transition> 定义好的 tran = (TransitionDrawable) getResources().getDrawable(R.drawable.fade_practice); ImageView1.setImageDrawable(tran); mCurrentPic = getResources().getDrawable(R.drawable.fa); tran.startTransition(2000);
当然我们也可以用动态的方式去实现一样的效果:
@Override public void onClick(View v) { mPreviousPic = mCurrentPic; int id = v.getId(); if (id == R.id.imageButton1) { mCurrentPic = getResources().getDrawable(R.drawable.fa); } else if (id == R.id.imageButton2) { mCurrentPic = getResources().getDrawable(R.drawable.xadf); } else if (id == R.id.imageButton3) { mCurrentPic = getResources().getDrawable(R.drawable.xxx); } //动态的判断加入 Drawable数组 tran = new TransitionDrawable(new Drawable[]{mPreviousPic,mCurrentPic}); tran.startTransition(2000); ImageView1.setImageDrawable(tran); }
三、Drawable的Constructor
也就是上面提到的,使用动态的实现方式
完整代码:https://github.com/shanwu/shanwu_coding_base/tree/transition_drawable_practice/ch16-3
To be Continued...
相关文章推荐
- Android4.0 Design之设计规范的十大革新
- 基于Android的OpenGL—使用GLSurfaceView
- Android中的Shape使用总结
- Qt on Android:将Qt调试信息输出到logcat中
- [转载]Android 生成keystore,两种方式
- Afaria Android客户端使用afariaseed.xml文件进行注册
- 【Android开发日记】 使得ScrollView显示区域位于某一个layout下面,不全屏显示,不覆盖上方的layout
- 【Android开发日记】 AndroidCharts LineView根据数据自动调整高度
- Android开源项目分类汇总
- 【Android】自定义控件——仿天猫Indicator
- android layouts
- Android 常用开源控件收集
- android shape(如自定义Button)
- Android 读取手机联系人、拨号、发送短信及长按菜单的操作
- 【Android】安装时, 先拷so主目录(当前设备相关),再拷so次目录,不重复拷贝 (armeabi/armeabi-v7a) arm-v7不兼容arm-v5
- Android--Sensor传感器
- Android学习笔记(十八)ContentProvider和Uri详解
- 一个html5播放视频的video控件只支持android的默认格式mp4和3gp
- android bootanimation.zip
- android cpp 创建线程