有没有办法在
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); } });