2012-04-16 55 views

回答

3

這是我應該怎樣做:

  1. 在構造
  2. 覆蓋onTouchEvent(MotionEvent ev)延長你的選擇
  3. 呼叫setStaticTransformationsEnabled(true);的滾動型跟蹤手指
  4. 覆蓋getChildStaticTransformation(View child, Transformation t)
  5. 的位置
  6. 該函數內部使用Camera類來創建3D變換矩陣。類似於圍繞X軸旋轉,旋轉中心是scrollview的中心。旋轉角度應取決於孩子的滾動位置和當前手指位置。

編輯:現在,我想了一會兒,你應該做的有點不同。

  • 不改寫getChildStaticTransformation(View child, Transformation t)而改爲drawChild(Canvas canvas, View child, long drawingTime)。 這允許您使用圖形緩存api。 (例如我的第一個鏈接)。這意味着,孩子第一次呈現爲位圖改進繪圖性能,並允許你這種線性藍色應用到透明的漸變到視圖

你可以看看herehere一個例子,如何使用相機。 This是一個具有超調滾動反彈效果的項目。 爲了讓超滾動效果更酷,您應該在用戶釋放手指時使用動畫。由於我非常喜歡新的android動畫框架,因此我會使用nine old androids。 我認爲正確實施這個效果對於有經驗的android程序員來說至少需要1-2天的時間。