我的线性布局大约有一半的屏幕宽度
我正在使用此代码进行翻译
<translate
android:duration="2000"
android:fromXDelta="100%"
android:toXDelta="0"
android:interpolator="@android:anim/decelerate_interpolator"
xmlns:android="http://schemas.android.com/apk/res/android"/>
但我的问题是线性布局从屏幕的末尾翻译,我在最后有另一张图片,所以我不希望布局在动画时与该图像重叠
所以我希望它从该图像的左侧开始翻译
<LinearLayout
android:id="@+id/row"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@android:color/transparent"
android:orientation="horizontal"
android:clipToPadding="false"
android:padding="3dp"
android:layout_alignParentBottom="true" android:layout_alignParentLeft="true"
android:layout_alignParentStart="true">
<LinearLayout
android:id="@+id/items"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="invisible"
android:background="@android:color/transparent"
android:orientation="horizontal"
android:padding="3dp">
<ImageButton
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:background="@android:color/transparent"
android:paddingBottom="5dp"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:paddingTop="5dp"
android:src="@drawable/search"
android:text="Android Custom Horizontal Dropdown Menu Icons" />
<ImageButton
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_marginLeft="2dp"
android:background="@android:color/transparent"
android:paddingBottom="5dp"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:paddingTop="5dp"
android:src="@drawable/search"
android:text="Android Custom Horizontal Dropdown Menu Icons" />
<ImageButton
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_marginLeft="2dp"
android:background="@android:color/transparent"
android:paddingBottom="5dp"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:paddingTop="5dp"
android:src="@drawable/search"
android:text="Android Custom Horizontal Dropdown Menu Icons" />
<ImageButton
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_marginLeft="2dp"
android:background="@android:color/transparent"
android:paddingBottom="5dp"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:paddingTop="5dp"
android:src="@drawable/search"
android:text="Android Custom Horizontal Dropdown Menu Icons" />
</LinearLayout>
<ImageButton
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_marginLeft="2dp"
android:background="@android:color/transparent"
android:id="@+id/widget"
android:paddingBottom="5dp"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:paddingTop="5dp"
android:src="@drawable/three"
android:layout_marginBottom="30dp"
android:text="Android Custom Horizontal Dropdown Menu Icons" />
</LinearLayout>
</RelativeLayout>
I want to animate the Linear Layout with id items
答案 0 :(得分:2)
以下是这些翻译..
从顶部移动到底部
android:fromYDelta="-75%p"
android:toYDelta="0%p"
从底部移动到顶部....
android:fromYDelta="75%p"
android:toYDelta="0%p"
从右向左移动
android:fromXDelta="75%p"
android:toXDelta="0%p"
试试这个......... 从左到右 ........
<translate
android:duration="2000"
android:fillAfter="true"
android:fromXDelta="-75%p"
android:toXDelta="0%p"
android:interpolator="@android:anim/decelerate_interpolator"
xmlns:android="http://schemas.android.com/apk/res/android"/>
享受编码..........
答案 1 :(得分:1)
您可以使用ViewPropertyAnimator:
在Java代码中轻松完成此操作LinearLayout ll = (LinearLayout) findViewById(R.id.row);
ll.animate().translationX(toX).setDuration(2000).setInterpolator(new DecelerateInterpolator());
其中(toX)是LinearLayout将在屏幕的X轴上移动的浮点值。它总是从当前位置开始。
另一种方法是:
ll.animate().translationXBy(byX);
动画LinearLayout BY (byX)值。
检查所有可用方法的docs,您可以使用ViewPropertyAnimator进行各种动画。