Android 获取imageviews当前比例值

Android 获取imageviews当前比例值,android,eclipse,imageview,scale,Android,Eclipse,Imageview,Scale,这就是我要缩放ImageView的步骤,如果可能的话,我要做的就是在按钮上单击以获得0.0f和1.0f之间的缩放值。基本上,我需要获得ImageView的宽度和高度值,但是直接检查这些值只会返回比例因子为1的宽度和高度。我在谷歌上搜索过,但什么也找不到,这意味着这一切都有可能吗?任何其他想法都会有帮助 简而言之,在一个动画中,可以得到一个图像的大小。 你不能在动画的中间问它的高度和宽度,因为动画在运行动画时不会逐渐改变视图的大小。它只会更改视图自身的绘制方式 一个简单的选择是在启动动画时跟踪时间

这就是我要缩放ImageView的步骤,如果可能的话,我要做的就是在按钮上单击以获得0.0f和1.0f之间的缩放值。基本上,我需要获得ImageView的宽度和高度值,但是直接检查这些值只会返回比例因子为1的宽度和高度。我在谷歌上搜索过,但什么也找不到,这意味着这一切都有可能吗?任何其他想法都会有帮助


简而言之,在一个动画中,可以得到一个图像的大小。

你不能在动画的中间问它的高度和宽度,因为动画在运行动画时不会逐渐改变视图的大小。它只会更改视图自身的绘制方式

一个简单的选择是在启动动画时跟踪时间戳,然后测量间隔,直到用户单击按钮。然后计算间隔在动画持续时间内的距离,并将其乘以图像的宽度和高度。像这样:

    Animation anim = new ScaleAnimation(0.0f, 1.0f, 0.0f, 1.0f, Animation.RELATIVE_TO_SELF, (float)0.5, Animation.RELATIVE_TO_SELF, (float)0.5);
    anim.setFillAfter(true); // Needed to keep the result of the animation
    anim.setDuration((long) durationPlayer);
    imageView1.startAnimation(anim);
long startTime;
...
imageView1.startAnimation(anim);
startTime = SystemClock.uptimeMillis();

public void onClick(View v) {
    if (v.getId() == R.id.my_button) {
        long millisElapsed = SystemClock.uptimeMillis() - startTime;
        double percentage = Math.max(0d, Math.min(1d, millisElapsed / (double) durationPlayer));
        int width = (int) (imageView1.getWidth() * percentage);
        int height = (int) (imageView1.getHeight() * percentage);
    }
}