矩阵和动画轮换之间的区别

矩阵和动画轮换之间的区别

问题描述:

如果我想旋转一个imageview。我会使用矩阵旋转还是动画旋转?有什么区别? 谢谢矩阵和动画轮换之间的区别

取决于目的。动画通常是一次性的事情,并且通过执行一些预定义的动作来完成。矩阵将用于用户可能想要进行的多点触摸交互。他们通常服务2个不同的目的。你在谈论什么类型的轮换?如果您需要用户手动旋转,则需要使用多点触控。如果你只是想展示一些很酷的动画,那么这是没有必要的。

关于矩阵的很酷的事情是,您可以将矩阵存储在数据库中并稍后检索。矩阵然后可以应用到您的图像视图,以便它正确显示。

+0

谢谢Dhruv。这是一个非常好的答案。那么,我正在寻找继续动画。基本上只要人触摸图像视图,图像就会保持旋转。我想你是说矩阵,不会动画一样吗?缺点? – Snake

+0

你应该使用动画和onTouch事件来做到这一点。你需要检测人员何时按下直到他按下,保持动画。您还需要使用动画侦听器回调(例如,onAnimationStart)。 –

+0

Dhruv那么你是什么意思使用。矩阵多点触摸? – Snake

矩阵旋转基本上是因为the matrix classCanvas应用中使用的是“转化坐标一个3x3矩阵” - 这可以从矩形,圆形等

动画Android中的观点来定义通常是通过Animation API - 完成与

+0

从你的答案看来,我应该总是去动画。这是真的?我正在寻找继续动画。基本上只要人触摸图像视图,图像就会保持旋转。我是否喜欢动画 – Snake

+0

@Snake:Nah,更像是“动画”API的目的是为创建动画而创建一个简单的机会,而无需处理矩阵。 “矩阵”类可以用于不同的形状,但我认为目前情况并非如此。如果你想要的话,你可以为你的'动画'对象设置一个重复模式。无限量的动画。 – Wroclai

我真的不能给不同说话,但我有一个简单的时间使用常规的动画类创造了一个金色的星星ImageView的一个简单的旋转动画:

MainActivity.java(中的onCreate()):

mGoldStar = (ImageView) findViewById(R.id.goldStar); 
... 
Animation rotation = AnimationUtils.loadAnimation(this, R.anim.rotate); 
mGoldStar.startAnimation(rotation); 

rotate.xml

<?xml version="1.0" encoding="UTF-8"?> 
<rotate 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:interpolator="@android:anim/linear_interpolator" 
    android:fromDegrees="0" 
    android:toDegrees="360" 
    android:pivotX="50%" 
    android:pivotY="50%" 
    android:repeatCount="infinite" 
    android:duration="1500" /> 
+0

谢谢Ben,我知道如何做动画。我喜欢这很容易。但我期待知道何时“不”使用它 – Snake