TranslateAnimation(平移动画)的意思无非就是一张图片或其他从一个位置到达另外一个位置。直接代码分析,相关重要属性参数解释都在代码中。

1、首先编写main.xml文件。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">

<ImageView
android:id="@+id/image"
android:text="@string/hello_world"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/car_one1"/>

</RelativeLayout>
2、接下来编写MainActivity.java文件。

package com.example.dell.bitmapproject;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.AnimationSet;
import android.view.animation.TranslateAnimation;
import android.widget.ImageView;

public class MainActivity extends AppCompatActivity {
private ImageView image;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
image =(ImageView)findViewById(R.id.image);
image.setOnClickListener(new OnClickListenerImpl());
}
private class OnClickListenerImpl implements View.OnClickListener {
@Override
public void onClick(View v) {
/*
AnimationSet相当于一个动画的集合,true表示使用Animation的interpolator
false则是使用自己的。
Interpolator 被用来修饰动画效果,定义动画的变化率,可以使存在的动画效果
accelerated(加速),decelerated(减速),repeated(重复),bounced(弹跳)等。
*/

AnimationSet animationSet = new AnimationSet(true);
/*
Animation还有几个方法
setFillAfter(boolean fillAfter)
如果fillAfter的值为真的话,动画结束后,控件停留在执行后的状态
setFillBefore(boolean fillBefore)
如果fillBefore的值为真的话,动画结束后,控件停留在动画开始的状态
setStartOffset(long startOffset)
设置动画控件执行动画之前等待的时间
setRepeatCount(int repeatCount)
设置动画重复执行的次数
*/
TranslateAnimation translateAnimation = new TranslateAnimation(
//X轴初始位置
Animation.RELATIVE_TO_SELF, 0.0f,
//X轴移动的结束位置
Animation.RELATIVE_TO_SELF,0.5f,
//y轴开始位置
Animation.RELATIVE_TO_SELF,0.0f,
//y轴移动后的结束位置
Animation.RELATIVE_TO_SELF,1.5f);

//3秒完成动画
translateAnimation.setDuration(2000);
//如果fillAfter的值为真的话,动画结束后,控件停留在执行后的状态
animationSet.setFillAfter(true);
//将AlphaAnimation这个已经设置好的动画添加到 AnimationSet中
animationSet.addAnimation(translateAnimation);
//启动动画
MainActivity.this.image.startAnimation(animationSet);

}
}
}




更多相关文章

  1. Google Play服务API(位置服务)是否需要数据计划?
  2. Android 属性动画(Property Animation)
  3. 路径提供者文档目录是一个安全的位置吗?
  4. Android使用SVG矢量图打造酷炫动画效果
  5. Button点击缩放动画效果
  6. 设置自定义Dialog的大小和位置
  7. 以编程方式将位置模式更改为高精度Android
  8. 【Based Android】android通过criteria选择合适的地理位置服务
  9. Settings点击Location(位置)后右上角的开关button不会消失

随机推荐

  1. 真正解决方案:Cannot resolve symbol 'xxx
  2. Android 简介:Android SDK 和开发框架简介
  3. android 屏幕方向切换 锁定方向
  4. Caused by: java.lang.IllegalStateExcep
  5. Android 基础 源码 工具
  6. Android 呼吸灯流程分析(一)
  7. android中校验email是否合法
  8. Android中设置控件透明度的方法
  9. 封装的一个android底部操作弹出窗
  10. Android文档阅读03—开发工具