簡単に言うと、ビューをスケーリングしたいと思います。たとえば、「説明」の「詳細」ボタンをクリックすると、Android マーケットと同じように表示されます。
Androidマーケットには次の構造のレイアウトがあることがわかりました:
<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 でさまざまな Animations / LayoutAnimations を ( および を介しview.setAnimation(), view.setLayoutAnimation()
てScaleAnimation
) 試しましたが、効果は常に同じです。ビューはアニメーション化されますが、スケーリング後の実際の layout_height は同じです (したがって、他のビューの位置は、指定された FrameLayout に依存しますが、同じままです)。
その後、私は考えました-ループで、指定されたFrameLayoutのlayout_heightを変更します。
layoutParams = view.getLayoutParams()
layoutParams.height = scaleTo;
layout.setLayoutParams(layoutParams);
活気に満ちた市場のようなビューを持っていますが、コスト (パフォーマンス!!!) が高すぎます...
したがって、質問は次のとおりです。アニメーションビューの下のビューの位置も変更されるように、指定された View / ViewGroup をスケーリングする (たとえば、高さを 50dip から 200dip に変更する) 他の適切な方法はありますか?