我有一个包含几个视图的LinearLayout。它不 是基于LinearLayout的 - 这是可以协商的 - 但它提供了这个简单的例子。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:id="@+id/left"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="#f00"
android:orientation="horizontal"/>
<LinearLayout
android:id="@+id/right"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="#ff0"
android:orientation="horizontal"/>
</LinearLayout>
这表现如下:
我想要做的是制作一个动画序列,从屏幕右侧滑出黄色视图,同时放大红色视图以填充留下的空间。
让我觉得有几种方法可以做到这一点:
基于体重的动画
我可以改变布局权重 - 具体来说,迭代地将黄色视图的权重减少到零。就红色视图而言,这将完成工作。但是,如果黄色视图中包含内容,则会在调整大小时将其压缩。它也运行得不顺畅。
这在某些情况下几乎可以接受,因为我可以将黄色视图及其内容淡出为零的alpha,然后然后清除空白区域。仍然不那么顺利,但没有挤压。但是,当我需要内容在移动时保持可见时,它无论如何都不再合适。
翻译动画
我可以滑出黄色视图,有点像this。然而,正如您所料,空置的空间被遗忘。它运行得非常顺利。
以上的组合?
我还没试过这个。我想我可以滑出视野,同时减少空间的重量。我不知道这是否真的可行,即重量变化是否会影响动画幻灯片,或者两者是否可以一次性连续运行,或者它是否能够平稳运行。
当然,还有一些完全不同的东西。
有什么建议吗?