android:如何从某个角度开始动画
作者:互联网
我的线性布局大约需要一半的屏幕宽度
我正在使用此代码进行翻译
<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
解决方法:
您可以使用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);
该动画通过(byX)值对LinearLayout进行动画处理.
检查docs中所有可用的方法,您可以使用ViewPropertyAnimator进行各种动画处理.
标签:android-animation,android 来源: https://codeday.me/bug/20191118/2027978.html