简而言之,我想缩放视图 - 就像Android Market一样,当您单击“更多”按钮时,在例如“描述”上。
我明白了,Android Market具有以下结构的布局:
<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>
所以,我在FrameLayout上尝试了各种动画/ LayoutAnimations(通过view.setAnimation(), view.setLayoutAnimation()
和ScaleAnimation
),但效果总是一样的:视图动画,但缩放后它是真正的layout_height仍然相同(所以其他视图的位置,取决于给定的FrameLayout,保持不变)。
之后,我想 - 我在循环中更改了给定FrameLayout的layout_height:
layoutParams = view.getLayoutParams()
layoutParams.height = scaleTo;
layout.setLayoutParams(layoutParams);
我有动画,市场般的观点,但成本(性能!!!)是很高的......
所以,问题是:是否有任何其他正确的方法来缩放(例如将高度从50dip更改为200dip)给定的View / ViewGroup,以便动画视图下方的视图位置也发生变化?
答案 0 :(得分:1)
正如Chet Haase在这篇博文中所说:http://android-developers.blogspot.com/2011/02/animation-in-honeycomb.html
“......最后,之前的动画改变了目标对象的视觉外观......但它们实际上并没有改变对象本身......”
由于您的需求只是视觉效果,而不是更改视图的LayoutParameters
,我会在底部为视图设置动画,并使用android:fillAfter
进行翻译。