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的大小。
答案 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);
}
}