Android 动画监听事件

public class GuideActivity extends Activity {

// 显示图片的ImageView组件

private ImageView guidePicture;

// 要展示的一组图片资源

private Drawable[] pictures;

// 每张展示图片要执行的一组动画效果

private Animation[] animations;

// 当前执行的是第几张图片(资源索引)

private int currentItem = 0;

@Override

protected void onCreate(Bundle savedInstanceState) {

// TODO Auto-generated method stub

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_guide);

initView();

initData();

}

private void initView() {

// 实例化ImageView引导图片

guidePicture = (ImageView) findViewById(R.id.guide_picture);

// 实例化引导图片数组

pictures = new Drawable[] {

getResources().getDrawable(R.drawable.guide_pic1),

getResources().getDrawable(R.drawable.guide_pic2),

getResources().getDrawable(R.drawable.guide_pic3) };

// 实例化动画效果数组

animations = new Animation[] {

AnimationUtils.loadAnimation(this, R.anim.guide_fade_in),

AnimationUtils.loadAnimation(this, R.anim.guide_fade_in_scale),

AnimationUtils.loadAnimation(this, R.anim.guide_fade_out) };

}

private void initData() {

// 给每个动画效果设置播放时间

animations[0].setDuration(1500);

animations[1].setDuration(3000);

animations[2].setDuration(1500);

// 给每个动画效果设置监听事件

animations[0].setAnimationListener(new GuideAnimationListener(0));

animations[1].setAnimationListener(new GuideAnimationListener(1));

animations[2].setAnimationListener(new GuideAnimationListener(2));

// 设置图片动画初始化默认值为0

guidePicture.setImageDrawable(pictures[currentItem]);

guidePicture.startAnimation(animations[0]);

}

class GuideAnimationListener implements AnimationListener {

private int index;

public GuideAnimationListener(int index) {

// TODO Auto-generated constructor stub

this.index = index;

}

@Override

public void onAnimationStart(Animation animation) {

// TODO Auto-generated method stub

}

// 重写动画结束时的监听事件,实现了动画循环播放的效果

@Override

public void onAnimationEnd(Animation animation) {

// TODO Auto-generated method stub

if (index < (animations.length - 1)) {

guidePicture.startAnimation(animations[index + 1]);

} else {

currentItem++;

if (currentItem > (pictures.length - 1)) {

currentItem = 0;

}

guidePicture.setImageDrawable(pictures[currentItem]);

guidePicture.startAnimation(animations[0]);

}

}

@Override

public void onAnimationRepeat(Animation animation) {

// TODO Auto-generated method stub

}

}

}

标记为红色的部分,当每次startAnimation时,GuideAnimationListener的对象都是不一样的,所以Index的值一次为0、1、2

时间: 2024-09-29 19:43:01

Android 动画监听事件的相关文章

Android 属性动画监听事件与一个菜单的例子

简单监听事件 package com.example.animation; import android.animation.Animator; import android.animation.Animator.AnimatorListener; import android.animation.AnimatorListenerAdapter; import android.animation.AnimatorSet; import android.animation.ObjectAnimat

Android - TextWatcher监听事件的使用

TextWatcher监听事件的使用 本文地址:http://blog.csdn.net/caroline_wendy TextWatcher可以在EditText中监听输入字体,重写3个方法: beforetTextChanged(),onTextChanged(),afterTextChanged(): 可以在EditText的addTextChangedListener中添加匿名内部类的方式使用: mEditStatus.addTextChangedListener(new TextWat

android editText 监听事件

在软键盘中注意 在监听的 edittext中 使用android:imeOptions属性的时候,一定要对EditText设置 android:inputType 或者 设置 android:singleline="true" 在activity_main.xml文件中,定义了8个EditText,imeOptions分别是: actionDone 完成 对应 EditorInfo.IME_ACTION_DONE actionGo 前进 对应 EditorInfo.IME_ACTION

Android输入法 监听事件

登录界面有一个输入用户名和密码的编辑框: private EditText et_userName;// 账户 private EditText et_password;// 密码 布局文件如下: <EditText android:id="@+id/login_et_username" android:layout_width="fill_parent" android:layout_height="fill_parent" androi

Android中Button的五种监听事件

简单聊一下Android中Button的五种监听事件: 1.在布局文件中为button添加onClick属性,Activity实现其方法2.匿名内部类作为事件监听器类3.内部类作为监听器4.Activity本身作为事件监听器,实现onClickListener5.外部类作为监听器 ButtonListenerActivity.class public class ButtonListenerActivity extends AppCompatActivity implements View.On

Android——监听事件总结1

各种监听事件 1.按钮 Button(1)点击监听 btn_1.setOnClickListener(new View.OnClickListener() { (2)长按监听 btn_1.setOnLongClickListener(new View.OnLongClickListener() { 2.单选框 RadioGroup radio_gp.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { 3.复选

Android中Preference的使用以及监听事件分析

> 在Android系统源码中,绝大多数应用程序的UI布局采用了Preference的布局结构,而不是我们平时在模拟器中构建应用程序时使用的View布局结构,例如,Setting模块中布局.当然,凡事都有例外,FMRadio应用程序中则使用了View布局结构(可能是该应用程序是marvel公司提供的,如果由google公司做,那可说不准).归根到底,Preference布局结构和View的布局结构本质上还是大同小异,Preference的优点在于布局界面的可控性和高效率以及可存储值的简洁性(每个

Android怎样监听蓝牙耳机的按键事件

写在前面: 直接想要代码非常easy,你直接把滚动栏拉到最底端就能够看到.假设想要十分地了解为什么,那就依照我规划的一步一步来理解.下面測试环境以手头上有的「Bluedio + 红米手机」. 1.蓝牙耳机的使用 蓝牙耳机的使用说明书中都会有相关的具体使用说明,这里拣重点说明一下.除了电源开关,耳机上一般有三个键.例如以下所看到的: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQva2FuZ2Vhcg==/font/5a6L5L2T/fontsize/40

android 应用监听输入法按键事件【比如搜索和回车键等】的整个流程分析

继承于InputMethodService类的服务代码如下: int keyCode = sKey.getKeyCode(); KeyEvent eDown = new KeyEvent(0, 0, KeyEvent.ACTION_DOWN, keyCode, 0, 0, 0, 0, KeyEvent.FLAG_SOFT_KEYBOARD); KeyEvent eUp = new KeyEvent(0, 0, KeyEvent.ACTION_UP, keyCode, 0, 0, 0, 0, Ke