1、camera 可以實現3d平移、旋轉等特效:
2、它並不是以galley檢視所在座標系,而是在其自身的座標系
3、例如,其繞y軸旋轉,實際是在matrix 對應檢視的左邊旋轉;平移也是同樣。
package com.view;import android.content.context;
import android.graphics.camera;
import android.graphics.matrix;
import android.util.attributeset;
import android.view.view;
import android.view.animation.transformation;
import android.widget.gallery;
import android.widget.imageview;/**
* * */
public
class
galleryflow extends gallery
public
galleryflow(context context, attributeset attrs)
public galleryflow(context context, attributeset attrs, int
defstyle)
public
intgetmaxrotationangle()
public
void setmaxrotationangle(int
maxrotationangle)
public
intgetmaxzoom()
public
void setmaxzoom(int
maxzoom)
private
intgetcenterofcoverflow()
private
static
intgetcenterofview(view view)
protected
boolean getchildstatictransformation(view child, transformation t)
else
transformimagebitmap((imageview) child, t, rotationangle);
}return
true
; }
private
void transformimagebitmap(imageview child, transformation t, int
rotationangle)
else
if (rotationangle > 0
)
else
mcamera.getmatrix(imagematrix);
mcamera.restore();
}protected
void onsizechanged(int w, int h, int oldw, int
oldh)
}
另乙個新的動畫效果:
privatevoid transformimagebitmap(view child, transformation t, int
rotationangle)
第乙個動畫的優化:
privatevoid transformimagebitmap(view child, transformation t, int
rotationangle)
繞任意軸旋轉
關於最常見的繞座標軸旋轉,可以看看前一篇 幾何變換詳解。繞任意軸旋轉的情況比較複雜,主要分為兩種情況,一種是平行於座標軸的,一種是不平行於座標軸的,對於平行於座標軸的,我們首先將旋轉軸平移至與座標軸重合,然後進行旋轉,最後再平移回去。整個過程就是 對於不平行於座標軸的,可按如下方法處理。該方法實際上...
繞任意軸旋轉
繞任意軸旋轉 關於最常見的繞座標軸旋轉,可以看看前一篇 幾何變換詳解。繞任意軸旋轉的情況比較複雜,主要分為兩種情況,一種是平行於座標軸的,一種是不平行於座標軸的,對於平行於座標軸的,我們首先將旋轉軸平移至與座標軸重合,然後進行旋轉,最後再平移回去。整個過程就是 對於不平行於座標軸的,可按如下方法處理...
繞任意軸旋轉
關於最常見的繞座標軸旋轉,可以看看前一篇 幾何變換詳解。繞任意軸旋轉的情況比較複雜,主要分為兩種情況,一種是平行於座標軸的,一種是不平行於座標軸的,對於平行於座標軸的,我們首先將旋轉軸平移至與座標軸重合,然後進行旋轉,最後再平移回去。整個過程就是 對於不平行於座標軸的,可按如下方法處理。該方法實際上...