其他分享
首页 > 其他分享> > android:如何从某个角度开始动画

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