2012-12-21 53 views
0

我正在使用圖庫通過滾動顯示圖像。我已經使用getChildStaticTransformation(View child,Transformation t)方法將變換應用到每個圖像的每個孩子。中心圖像zoomedin在Android中的圖庫

但現在我想使用按鈕滾動圖像。所以我從onTouch事件按鈕調用方法getChildStaticTransformation。但圖像不動。

的代碼如下: -

在我已經使用的類的構造函數,

this.setStaticTransformationsEnabled(true); 

所以下面方法得到所有的本身燒成當我滾動screen.But我想要使用按鈕上的方法現在點擊。我已經嘗試在明確按鈕點擊內部調用此方法,但它不起作用。

protected boolean getChildStaticTransformation(View child, Transformation t) { 

    final int childCenter = getCenterOfView(child); 
    final int childWidth = child.getWidth(); 
    int rotationAngle = 0; 

    t.clear(); 
    t.setTransformationType(Transformation.TYPE_MATRIX); 

    if (childCenter == mCoveflowCenter) { 
     transformImageBitmap((ImageView) child, t, 0); 
    } else { 
     rotationAngle = (int) (((float) (mCoveflowCenter - childCenter)/       childWidth) * mMaxRotationAngle); 
     if (Math.abs(rotationAngle) > mMaxRotationAngle) { 
      rotationAngle = (rotationAngle < 0) ? -mMaxRotationAngle 
        : mMaxRotationAngle; 
     } 
     transformImageBitmap((ImageView) child, t, rotationAngle); 
    } 

    return true; 
} 

請幫幫我。

回答

6

你嘗試調用無效getChildStaticTransformation()方法類似child.invalidate();?每當你想更新一個孩子的靜態變換,你需要調用各自的孩子的invalidate()。如果您在點擊按鈕的同時移動圖片仍然存在問題,您可以按照以下步驟操作:example,以便您瞭解如何通過點擊按鈕瀏覽圖片的基本想法。如果您可以發佈您的代碼片段,但實際上它出錯了,可能會有編輯我的答案的機會。希望這可以幫助。

+0

我已經使用了一個構造函數,並且我使用了this.setStaticTransformationsEnabled(true)。因此,當我拖動屏幕時,方法getChildStaticTransformation()被觸發,圖像將會取代。但是現在我想要的方法是調用按鈕onTouch event.child.invalidate()沒有幫助 – user1902958

+0

你可以用你的代碼編輯你的問題嗎?所以這很容易回答。 – Kanth

+0

我已經編輯了代碼的問題。請讓我知道,如果你有任何解決方案。 – user1902958

0

我找到了解決方案。我使用了OnFling方法()。

+0

嗨,我猜這還不夠。如果無法輸入答案,只需複製粘貼代碼即可。大聲笑..;)BTW標記你的答案。給你的問題+1。 – Kanth