2011-04-19 145 views
7

簡而言之,我想要擴展視圖 - 就像Android電子市場一樣,當您點擊「更多」按鈕時,在示例「說明」上。
我弄明白,認爲Android市場具有以下結構的佈局:(通過view.setAnimation(), view.setLayoutAnimation()ScaleAnimation如何縮放View/ViewGroup - 以正確的方式動畫布局?

<FrameLayout 
    android:id="@+id/artists_frame" 
    android:layout_width="fill_parent" 
    android:layout_height="64dip" 
    android:layout_below="@id/something1" 
    android:layout_above="@id/something2" 

    > 

<!-- Some view there, which height >> 64dip --> 

    </FrameLayout> 

所以,我已經試過各種動畫/ LayoutAnimations上的FrameLayout,但效果總是相同的:視圖動畫,但它是真正的layout_height縮放後仍然是相同的(所以其他視圖的位置,依賴於給定的FrameLayout,保持不變)。

在那之後,我想 - 我在循環改變給定的FrameLayout的layout_height:

layoutParams = view.getLayoutParams() 
layoutParams.height = scaleTo; 
layout.setLayoutParams(layoutParams); 

我有它得到了動畫,類似市場的看法,但成本(性能! !)是高...

所以,問題是:是否有任何其他適當的方式來縮放(例如高度從50dip改變爲200dip)給定的View/ViewGroup,以便下面的視圖的位置動畫視圖也改變了?

+0

我一直在嘗試做同樣的事情。這是我的一半嘗試:https://gist.github.com/947574它在'Animation'的子類中設置佈局參數。表現還不錯。正在調整大小的錯誤,沒有完成 - 在追趕怪癖時耗盡了預算。 – 2011-04-28 23:41:49

+0

也是類似的SO問題與類似的解決方案:http://stackoverflow.com/questions/4946295/android-expand-collapse-animation – 2011-04-29 00:00:07

回答

1

切特·哈澤說,在這個博客帖子:http://android-developers.blogspot.com/2011/02/animation-in-honeycomb.html

」 ......最後,以前的動畫改變了目標對象的視覺外觀...但他們並沒有真正改變物體本身.. 」

由於您的需求是唯一的視覺,而不是改變視圖的LayoutParameters我將動畫視圖在底部,以及用什麼翻譯使用android:fillAfter兩種。