我想將ScaleAnimation
應用到View
,但我有一個非傳統要求:我只想縮放視圖的一個非常特定的區域。拉伸/縮放視圖的特定區域/位圖
使用現有的ScaleAnimation
class I可以輕鬆均勻地縮放視圖。我還可以設置一個關於哪個縮放視圖的樞軸點。下面是一個例子:
這是直截了當的。不過,我想實現以下,這從(在笑臉的中間或在此情況下一個小的水平矩形)僅縮放一個特定區域的圖的結果:
我周圍的源挖對於ScaleAnimation
代碼,下面的函數似乎是負責縮放:
protected void applyTransformation(float interpolatedTime, Transformation t) {
float sx = 1.0f;
float sy = 1.0f;
if (mFromX != 1.0f || mToX != 1.0f) {
sx = mFromX + ((mToX - mFromX) * interpolatedTime);
}
if (mFromY != 1.0f || mToY != 1.0f) {
sy = mFromY + ((mToY - mFromY) * interpolatedTime);
}
if (mPivotX == 0 && mPivotY == 0) {
t.getMatrix().setScale(sx, sy);
} else {
t.getMatrix().setScale(sx, sy, mPivotX, mPivotY);
}
}
由於此功能只是將縮放操作的矩陣,我想有某種矩陣運算的,我可以用它來寫一個自定義的尺度動畫,但我的線性代數技巧是缺乏的NG。解決這個問題的辦法可能要簡單得多,因爲看起來好像其他人會遇到這個問題,但我一直沒有找到任何解決辦法。提前致謝。
你找到了嗎?分享它。 – 2015-09-11 03:59:19