我有一个带有图像的布局(嵌入在ImageView中)。我需要旋转图像(比方说)逆时针90度。在布局中旋转ImageView ...如何?
我写代码的动画图像旋转...:
public class MainActivity extends Activity
{
private ImageView mImageView = null;
private Animation mRotateAnimation = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mImageView = (ImageView) findViewById(R.id.my_image);
mRotateAnimation = AnimationUtils.loadAnimation(this, R.anim.my_rotate_90);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
mImageView.startAnimation(mRotateAnimation);
return true;
}
return super.onTouchEvent(event);
}
}
图像平滑旋转90度,但随后弹回原来的状态。这是Android文档所说的将在动画完成后发生的事情。据推测,在动画已结束的通知中,我应该转换ImageView(或底层绘图),并可能使其无效以触发重绘。
一切顺利,除了那我找不到一个方法来做到这一点,我找不到任何其他人的例子。
我试过getImageMatix
/setImageMatrix
mImageView
,没有明显的效果。有Drawable的子类可以旋转图像,但ImageView上没有setDrawable()方法,所以我不知道如何使用它。
我搜索了这些例子;虽然其中一些涉及动画和旋转(尤其是LunarLander),但它们都不会动画ImageView,然后将其保留在某种转换状态。
当然,我在这里错过了一些简单的... aaaargh,你如何旋转布局内的ImageView?
谢谢。
我应该补充一点,90度只是一个不错的圆形例子。旋转可以是任何度数,因此“使每个图像的四个版本:0,90,180和270度旋转”不会成为解决方案。 – 2010-02-06 00:46:20