当前位置: 移动技术网 > IT编程>移动开发>Android > Android开发之图形图像与动画(四)AnimationListener简介

Android开发之图形图像与动画(四)AnimationListener简介

2019年07月24日  | 移动技术网IT编程  | 我要评论

mc单色照片,易行港,狼群txt全集下载

就像button控件有监听器一样,动画效果也有监听器,只需要实现animationlistener就可以实现对动画效果的监听,其中需要重载三个函数,就是下面的这几个函数:
复制代码 代码如下:

private class mylistenr implements animationlistener{
@override
public void onanimationend(animation arg0) {
// todo auto-generated method stub
}
@override
public void onanimationrepeat(animation arg0) {
// todo auto-generated method stub
}
@override
public void onanimationstart(animation arg0) {
// todo auto-generated method stub
}

}

其中第一个函数的意思是在动画执行完之后需要开发者做什么,第二个函数的意思是在动画重复执行的过程中应该做什么,第三个函数的意思是当动画开始执行时有什么动作发生。

下面我实现了一个例子,点击删除按钮,图片慢慢淡去,并最终删除,当点击添加按钮时向viewgroup中添加一个imageview,实现的截图如下:
 
具体的实现代码如下:
复制代码 代码如下:

public class mainactivity extends activity {
private button button;
private button button2;
private imageview imageview;
private viewgroup viewgroup;
@override
protected void oncreate(bundle savedinstancestate) {
super.oncreate(savedinstancestate);
setcontentview(r.layout.activity_main);
button=(button)findviewbyid(r.id.button_add);
button2=(button)findviewbyid(r.id.button_delete);
imageview=(imageview)findviewbyid(r.id.imageview1);
viewgroup=(viewgroup)findviewbyid(r.id.viewgroup);
button.setonclicklistener(new mybutton());
button2.setonclicklistener(new mybutton());
}
private class mybutton implements onclicklistener{
@override
public void onclick(view v) {
// todo auto-generated method stub
switch (v.getid()) {
case r.id.button_add:
add();
break;
case r.id.button_delete:
delete();
break;
default:
break;
}
}
}

public void add() {
alphaanimation alphaanimation=new alphaanimation(0.0f, 1.0f);
alphaanimation.setduration(2000);
alphaanimation.setstartoffset(500);
imageview imageviewadd=new imageview(mainactivity.this);
imageviewadd.setimageresource(r.drawable.ic_launcher);
viewgroup.addview(imageviewadd);
// viewgroup.addview(imageviewadd, new layoutparams(
// layoutparams.wrap_content,layoutparams.wrap_content));
imageviewadd.startanimation(alphaanimation);
}
public void delete() {
alphaanimation alphaanimation=new alphaanimation(1.0f, 0.0f);
alphaanimation.setduration(2000);
alphaanimation.setstartoffset(500);
imageview.startanimation(alphaanimation);
alphaanimation.setanimationlistener(new mylistenr());
}

private class mylistenr implements animationlistener{
@override
public void onanimationend(animation arg0) {
// todo auto-generated method stub
viewgroup.removeview(imageview);
log.d("brucezhang", "animation end!");
}
@override
public void onanimationrepeat(animation arg0) {
// todo auto-generated method stub
log.d("brucezhang", "animation repeat!");
}
@override
public void onanimationstart(animation arg0) {
// todo auto-generated method stub
log.d("brucezhang", "animation start!");
}

}
@override
public boolean oncreateoptionsmenu(menu menu) {
// inflate the menu; this adds items to the action bar if it is present.
getmenuinflater().inflate(r.menu.activity_main, menu);
return true;
}
}

此实例的布局文件如下,注意,需要在根标签下给出viewgroup的id:
复制代码 代码如下:

<absolutelayout 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"
tools:context=".mainactivity"
android:id="@+id/viewgroup"
>
<button
android:id="@+id/button_add"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_x="0dp"
android:layout_y="367dp"
android:text="添加图片" />
<button
android:id="@+id/button_delete"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_x="0dp"
android:layout_y="410dp"
android:text="删除图片" />
<imageview
android:id="@+id/imageview1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_x="153dp"
android:layout_y="155dp"
android:src="@drawable/ic_launcher" />
</absolutelayout>

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网