用于放大和缩小android for imageview的动画

时间:2013-03-17 06:10:22

标签: android-animation

如何在单击imageview时设置放大和缩小?我希望我的程序在用户点击imageview时做出反应必须在某种程度上变大,并且可以在该屏幕上移动imageview,有时它会减小尺寸在屏幕上的任何地方移动触摸。当再次点击是恢复原始尺寸我该怎么办?

2 个答案:

答案 0 :(得分:13)

据我所知,有两种方法。

第一种方式:

在res中创建一个名为'anim'的新文件夹。比在里面创建一个xml文件,例如zoomin.xml。然后将以下代码放入其中。

<scale  xmlns:android="http://schemas.android.com/apk/res/android"
  android:fromXScale="1" 
  android:toXScale="5" 
  android:fromYScale="1" 
  android:toYScale="5" 
  android:pivotX="50%" 
  android:pivotY="50%" 
  android:duration="1000" 
  android:fillAfter="true">
</scale>

制作另一个用于缩小,但反转值。

<scale  xmlns:android="http://schemas.android.com/apk/res/android"
  android:fromXScale="5" 
  android:toXScale="1" 
  android:fromYScale="5" 
  android:toYScale="1" 
  android:pivotX="50%" 
  android:pivotY="50%" 
  android:duration="1000" 
  android:fillAfter="true">
</scale>

您可以根据需要更改值。我认为它们是不言自明的。

现在在你的java代码中。

ImageView imageView = (imageView)findViewById(R.id.yourImageViewId);

Animation zoomin = AnimationUtils.loadAnimation(this, R.anim.zoomin);
Animation zoomout = AnimationUtils.loadAnimation(this, R.anim.zoomout);
imageView.setAnimation(zoomin);
imageView.setAnimation(zoomout);

现在你只需要跟踪哪个是当前状态。并且对于每个州执行以下代码行:

imageView.startAnimation(zoomin);

imageView.startAnimation(zoomout);

例如:

imageView.setOnClickListener(new OnClickListener(){
            public void onClick(View v) {
                if(!pressed) {
                    v.startAnimation(zoomin);
                    pressed = !pressed;
                } else {
                    v.startAnimation(zoomout);
                    pressed = !pressed;
                }
            }
        });

此处描述了另一种方式:http://developer.android.com/training/animation/zoom.html

答案 1 :(得分:0)

您可以轻松地按照本指南进行此操作

http://developer.android.com/training/animation/zoom.html

很快您应该使用第三个图像视图,当用户触摸您想要的任何图像视图时它是不可见的,您可以使用不可见的图像视图中的动画来显示它。