Android:ImageView上的Matrix操作,动画?

时间:2011-06-06 05:19:16

标签: android animation matrix translation imageview

我使用矩阵来翻译/缩放ImageView,在setImageMatrix之后,结果直接显示,无论如何都要使它动画化?

谢谢!

2 个答案:

答案 0 :(得分:1)

缩放将是翻译和缩放的组合:

// zooms in to the center of the screen
mZoomIn = new AnimationSet(true);

mTranslate = new TranslateAnimation(
                Animation.ABSOLUTE, 0.0f, Animation.ABSOLUTE, -imageViewXCoord/(mScreenWidth/mImageViewWidth),
                Animation.ABSOLUTE, 0.0f, Animation.ABSOLUTE, -imageViewYCoord/(mScreenWidth/mImageViewWidth)
            );
mTranslate.setDuration(200);

mScale = new ScaleAnimation(1, mScreenWidth/mImageViewWidth, 1, mScreenWidth/mImageViewWidth);
mScale.setDuration(200);

mZoomIn.addAnimation(mTranslate);
mZoomIn.addAnimation(mScale);
mZoomIn.setFillAfter(true);
mZoomIn.setFillEnabled(true);

mImageView.startAnimation(mZoomIn);

缩小将涉及放大时的反向插补器,之后您可以按照正常情况在图像视图上调用startAnimation:

mZoomIn.setInterpolator(new ReverseInterpolator())

答案 1 :(得分:0)

您可以尝试使用Honeycomb中引入的新动画框架,但我不知道这是否可以直接与图像矩阵一起使用。您可以将矩阵应用的变换转换为基本动画变换,例如缩放,平移,旋转,alpha。

如果你的目标是Android 2.x设备,你可以使用Jake Wharton的NineOldAndroids [1],它是Honeycomb新动画框架的后端。它非常易于使用,因为它模仿了您在11个以上设备上使用的相同API。

[1] http://nineoldandroids.com/