Масштаб анимации - Как остановить анимацию дочернего просмотра

У меня есть макет (родительский вид) и текстовый вид (дочерний вид) внутри этого макета. Применение анимации масштабирования к родительскому представлению, но когда анимация масштабирования применяется к родительскому представлению, его дочернее представление также масштабируется. Есть ли способ остановить анимацию дочернего элемента? Включая код

Файл макета

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/main_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.tfg.social.MainActivity$PlaceholderFragment" >

<FrameLayout
    android:id="@+id/top_layout"
    android:layout_width="match_parent"
    android:layout_height="100dp"

    android:layout_gravity="center"
    android:background="#ffff00"
    android:orientation="horizontal" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:layout_gravity="center"
        android:text="Top Layout"
        android:background="#000000"
        android:adjustViewBounds="true"
        android:textAppearance="?android:attr/textAppearanceMedium" />
</FrameLayout>

Animation method

protected void expandLayout(View view) {
    ObjectAnimator scaleUpY = ObjectAnimator.ofFloat(view, "scaleY", 5f);
    scaleUpY.setDuration(1000);
    AnimatorSet scaleAnimation = new AnimatorSet();
    scaleAnimation.play(scaleUpY);
    scaleAnimation.start();

}

person android.fryo    schedule 21.05.2014    source источник
comment
Пожалуйста, опубликуйте свой код   -  person Parth Kapoor    schedule 21.05.2014
comment
включил код в вопрос   -  person android.fryo    schedule 21.05.2014
comment
Если контейнер (линейный макет) анимирован, все дочерние элементы, содержащиеся в нем, будут анимированы. Однако у вас может быть другая структура XML, может использоваться относительный макет, чтобы добиться желаемого эффекта.   -  person Parth Kapoor    schedule 21.05.2014


Ответы (1)


Попробуйте это -

ValueAnimator valueAnimator = ObjectAnimator.ofInt(start, end);
valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
    @Override
    public void onAnimationUpdate(ValueAnimator valueAnimator) {
        int val = (Integer) valueAnimator.getAnimatedValue();
        LayoutParams layoutParams = (LayoutParams) getLayoutParams();
        layoutParams.height = val;
        setLayoutParams(layoutParams);
    }
});

valueAnimator.setDuration(300);
valueAnimator.start();
person Varundroid    schedule 16.06.2015