获取图像视图当前比例值

时间:2014-12-04 07:27:54

标签: android eclipse imageview scale

    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);

这就是我必须缩放ImageView的内容,如果可能的话,我想要做的就是在点击按钮上获得缩放值,以便在0.0f和1.0f之间。基本上我需要得到ImageView的宽度和高度值,但直接检查它们只返回比例因子为1的宽度和高度。我用谷歌搜索但找不到任何东西,这是否意味着它尽可能的?任何其他想法都会有所帮助。

简而言之,它可以在缩放动画中获得imageview的大小。

1 个答案:

答案 0 :(得分:0)

您无法在动画中间询问ImageView的高度和宽度,因为动画在运行动画时不会逐渐更改视图的大小。它只会改变视图的绘制方式。

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

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);
    }
}