安卓的4种动画
来源:互联网 发布:真人快打x没有网络链接 编辑:程序博客网 时间:2024/05/20 11:35
private ImageView image;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//获取资源ID
image=(ImageView) findViewById(R.id.image);
}
//位移
public void translate(View v){
/**
* fromXType 开始X轴的类型. One of Animation.ABSOLUTE,绝对的 Animation.RELATIVE_TO_SELF,相对于自身 or Animation.RELATIVE_TO_PARENT. 相对于父窗体
* fromXValue X轴开始的位置.
* toXType 结束X轴的类型 One of Animation.ABSOLUTE, Animation.RELATIVE_TO_SELF, or Animation.RELATIVE_TO_PARENT.
* toXValue X轴结束的位置
* fromYType 开始Y轴的类型
* fromYValue 开始Y轴的位置
* toYType Y轴结束的类型
* toYValue Y轴结束的位置
*/
TranslateAnimation translateAnimation=new TranslateAnimation(Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT, 0.8f, Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT, 0.8f);
//设置执行的时间
translateAnimation.setDuration(3000);
//设置是否来回执行 RESTART 正常 REVERSE 来回执行
translateAnimation.setRepeatMode(Animation.REVERSE);
//设置执行的次数
translateAnimation.setRepeatCount(2);
//是否保存最后的位置
translateAnimation.setFillAfter(true);
//设置插值器
translateAnimation.setInterpolator(new AccelerateInterpolator());
//执行动画
// image.setAnimation(translateAnimation);
image.startAnimation(translateAnimation);
}
//旋转
public void rotate(View v){
/**
*
* fromDegrees, 开始的角度
* toDegrees, 结束的角度
* pivotXType X轴原点的类型
* pivotXValue, X原点的位置
* pivotYType, Y轴原点的类型
* pivotYValue Y原点的位置
*/
RotateAnimation rotateAnimation=new RotateAnimation(0, -360f, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
//设置执行的时间
rotateAnimation.setDuration(3000);
//设置执行的次数
rotateAnimation.setRepeatCount(2);
//设置是否来回执行 RESTART 正常 REVERSE 来回执行
rotateAnimation.setRepeatMode(Animation.REVERSE);
image.startAnimation(rotateAnimation);
}
//透明
public void alpha(View v){
/**
* fromAlpha, 开始透明
* toAlpha 结束透明
*/
AlphaAnimation alphaAnimation=new AlphaAnimation(1.0f, 0.0f);
alphaAnimation.setDuration(3000);
alphaAnimation.setRepeatCount(2);
image.startAnimation(alphaAnimation);
}
//缩放
public void scale(View v){
/**
* fromX, 开始X轴水平的位置
* toX, 结束X轴水平的位置
* fromY, 开始Y轴水平的位置
* toY,结束Y轴水平的位置
* pivotXType, 规定原点的类型以及位置
* pivotXValue,
* pivotYType,
* pivotYValue
*
*/
ScaleAnimation scaleAnimation=new ScaleAnimation(1.0f, 0.0f, 1.0f, 0.0f, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
scaleAnimation.setDuration(3000);
scaleAnimation.setRepeatCount(1);
//重复执行
scaleAnimation.setRepeatMode(Animation.REVERSE);
image.startAnimation(scaleAnimation);
}
//组合动画
public void set(View v){
//是否使用通用一个插值器
AnimationSet animationSet=new AnimationSet(true);
AlphaAnimation alphaAnimation=new AlphaAnimation(1.0f, 0.0f);
RotateAnimation rotateAnimation=new RotateAnimation(0, -360f, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
ScaleAnimation scaleAnimation=new ScaleAnimation(1.0f, 0.0f, 1.0f, 0.0f, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
TranslateAnimation translateAnimation=new TranslateAnimation(Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT, 0.8f, Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT, 0.8f);
//将动画添加到组合动画当中
animationSet.addAnimation(scaleAnimation);
animationSet.addAnimation(rotateAnimation);
animationSet.addAnimation(alphaAnimation);
animationSet.addAnimation(translateAnimation);
animationSet.setDuration(10000);
image.startAnimation(animationSet);
animationSet.setAnimationListener(new AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
// TODO Auto-generated method stub
Log.i("TAG", "开始");
}
@Override
public void onAnimationRepeat(Animation animation) {
// TODO Auto-generated method stub
Log.i("TAG", "重复");
}
@Override
public void onAnimationEnd(Animation animation) {
// TODO Auto-generated method stub
Log.i("TAG", "结束");
}
});
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//获取资源ID
image=(ImageView) findViewById(R.id.image);
}
//位移
public void translate(View v){
/**
* fromXType 开始X轴的类型. One of Animation.ABSOLUTE,绝对的 Animation.RELATIVE_TO_SELF,相对于自身 or Animation.RELATIVE_TO_PARENT. 相对于父窗体
* fromXValue X轴开始的位置.
* toXType 结束X轴的类型 One of Animation.ABSOLUTE, Animation.RELATIVE_TO_SELF, or Animation.RELATIVE_TO_PARENT.
* toXValue X轴结束的位置
* fromYType 开始Y轴的类型
* fromYValue 开始Y轴的位置
* toYType Y轴结束的类型
* toYValue Y轴结束的位置
*/
TranslateAnimation translateAnimation=new TranslateAnimation(Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT, 0.8f, Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT, 0.8f);
//设置执行的时间
translateAnimation.setDuration(3000);
//设置是否来回执行 RESTART 正常 REVERSE 来回执行
translateAnimation.setRepeatMode(Animation.REVERSE);
//设置执行的次数
translateAnimation.setRepeatCount(2);
//是否保存最后的位置
translateAnimation.setFillAfter(true);
//设置插值器
translateAnimation.setInterpolator(new AccelerateInterpolator());
//执行动画
// image.setAnimation(translateAnimation);
image.startAnimation(translateAnimation);
}
//旋转
public void rotate(View v){
/**
*
* fromDegrees, 开始的角度
* toDegrees, 结束的角度
* pivotXType X轴原点的类型
* pivotXValue, X原点的位置
* pivotYType, Y轴原点的类型
* pivotYValue Y原点的位置
*/
RotateAnimation rotateAnimation=new RotateAnimation(0, -360f, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
//设置执行的时间
rotateAnimation.setDuration(3000);
//设置执行的次数
rotateAnimation.setRepeatCount(2);
//设置是否来回执行 RESTART 正常 REVERSE 来回执行
rotateAnimation.setRepeatMode(Animation.REVERSE);
image.startAnimation(rotateAnimation);
}
//透明
public void alpha(View v){
/**
* fromAlpha, 开始透明
* toAlpha 结束透明
*/
AlphaAnimation alphaAnimation=new AlphaAnimation(1.0f, 0.0f);
alphaAnimation.setDuration(3000);
alphaAnimation.setRepeatCount(2);
image.startAnimation(alphaAnimation);
}
//缩放
public void scale(View v){
/**
* fromX, 开始X轴水平的位置
* toX, 结束X轴水平的位置
* fromY, 开始Y轴水平的位置
* toY,结束Y轴水平的位置
* pivotXType, 规定原点的类型以及位置
* pivotXValue,
* pivotYType,
* pivotYValue
*
*/
ScaleAnimation scaleAnimation=new ScaleAnimation(1.0f, 0.0f, 1.0f, 0.0f, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
scaleAnimation.setDuration(3000);
scaleAnimation.setRepeatCount(1);
//重复执行
scaleAnimation.setRepeatMode(Animation.REVERSE);
image.startAnimation(scaleAnimation);
}
//组合动画
public void set(View v){
//是否使用通用一个插值器
AnimationSet animationSet=new AnimationSet(true);
AlphaAnimation alphaAnimation=new AlphaAnimation(1.0f, 0.0f);
RotateAnimation rotateAnimation=new RotateAnimation(0, -360f, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
ScaleAnimation scaleAnimation=new ScaleAnimation(1.0f, 0.0f, 1.0f, 0.0f, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
TranslateAnimation translateAnimation=new TranslateAnimation(Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT, 0.8f, Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT, 0.8f);
//将动画添加到组合动画当中
animationSet.addAnimation(scaleAnimation);
animationSet.addAnimation(rotateAnimation);
animationSet.addAnimation(alphaAnimation);
animationSet.addAnimation(translateAnimation);
animationSet.setDuration(10000);
image.startAnimation(animationSet);
animationSet.setAnimationListener(new AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
// TODO Auto-generated method stub
Log.i("TAG", "开始");
}
@Override
public void onAnimationRepeat(Animation animation) {
// TODO Auto-generated method stub
Log.i("TAG", "重复");
}
@Override
public void onAnimationEnd(Animation animation) {
// TODO Auto-generated method stub
Log.i("TAG", "结束");
}
});
}
阅读全文
0 0
- 安卓的4种动画
- 安卓的三种动画,帧动画,补间动画,属性动画
- 安卓的动画效果
- 安卓动画的使用 位移动画和缩放动画
- 安卓实现动画的3种方式
- 安卓动画为了,写购物车动画,搜集的安卓动画的代码
- 安卓的基本的动画介绍
- 安卓之--动画效果的实现
- 安卓常用的基本动画代码
- 安卓的各种动画资源
- 安卓属性动画的总结
- 安卓开机动画的制作
- 安卓Activity--Activity的跳转动画
- 安卓的动画效果分析
- 安卓简单的动画使用
- 炒鸡炫酷的安卓动画,值得学习
- 笔记14 Animation 安卓4种基础动画效果
- 安卓动画之listView动画,Activity切换动画,Fragment切换动画及LayoutAnimation的使用
- 微机原理之八大通用寄存器
- Unity低级本地插件接口--Low-level Native Plugin Interface
- ElemType是什么?
- NIO 02 阻塞式和非阻塞式[Socket]
- 如何实现一个线程安全的map?
- 安卓的4种动画
- express获取表单中的文件和其他数据(enctype=multipart/form-data)
- ArcGIS体系介绍
- Wannafly模拟赛3 贝伦卡斯泰露 【折半搜索+hash,状压dp】
- 欢迎使用CSDN-markdown编辑器
- C++与C#互转
- iOS开发之WKWebView怎么加载请求并且传参数
- 将数据写入SD卡
- JAVA常用api — Object详解