有没有办法在
Android中连续放大和缩小ImageView.我尝试使用下面的代码,但只有一个Zoom功能正在运行.
zoomin.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:fillAfter="true" >
<scale
xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="20000"
android:fromXScale="1"
android:fromYScale="1"
android:pivotX="50%"
android:pivotY="50%"
android:toXScale="3"
android:toYScale="3" >
</scale>
</set>
zoomout.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:fillAfter="true" >
<scale
xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="20000"
android:fromXScale="1.0"
android:fromYScale="1.0"
android:pivotX="50%"
android:pivotY="50%"
android:toXScale="0.5"
android:toYScale="0.5" >
</scale>
</set>
和我的Activity类:
Animation zoomin,zoomout; //declared as public
@Override
public void onCreate(Bundle savedInstanceState) {
// animation
zoomin = AnimationUtils.loadAnimation(this,R.anim.zoomin);
zoomout = AnimationUtils.loadAnimation(this,R.anim.zoomout);
bgImage.setAnimation(zoomin);
bgImage.setAnimation(zoomout);
Thread t = new Thread(new Zoom());
t.start();
}
private class Zoom implements Runnable {
@Override
public void run() {
while (true) {
bgImage.startAnimation(zoomin);
try {
Thread.sleep(8000);
} catch (InterruptedException e) {
e.printstacktrace();
}
bgImage.startAnimation(zoomout);
}
}
}
这里的zoomin动画似乎工作正常.有没有办法连续实现缩放和缩小动画?
谢谢
解决方法
使用这个而不是线程
zoomin.setAnimationListener(new AnimationListener() {
@Override
public void onAnimationStart(Animation arg0) {
// Todo Auto-generated method stub
}
@Override
public void onAnimationRepeat(Animation arg0) {
// Todo Auto-generated method stub
}
@Override
public void onAnimationEnd(Animation arg0) {
bgImage.startAnimation(zoomout);
}
});
和
zoomout.setAnimationListener(new AnimationListener() {
@Override
public void onAnimationStart(Animation arg0) {
// Todo Auto-generated method stub
}
@Override
public void onAnimationRepeat(Animation arg0) {
// Todo Auto-generated method stub
}
@Override
public void onAnimationEnd(Animation arg0) {
bgImage.startAnimation(zoomin);
}
});