2014-05-21 3 views
2

이 레이아웃 내에 레이아웃 (상위보기)과 텍스트보기 (하위보기)가 있습니다. 부모보기에 눈금 애니메이션 적용하지만 눈금 애니메이션을 부모보기에 적용하면 하위보기도 확대됩니다. 자식이 애니메이션에서 멈출 수있는 방법이 있습니까? 코드 포함스케일 애니메이션 - 하위보기 애니메이션을 중지하는 방법

레이아웃 파일

<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> 

애니메이션 방법

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

} 
+0

코드 –

+0

는 t의 코드를 포함 게시하시기 바랍니다 그는 질문 : –

+0

컨테이너 (선형 레이아웃) 애니메이션 경우, 그것에 포함 된 모든 어린이 애니메이션 것입니다. 그러나 서로 다른 XML 구조를 가질 수 있고, 상대적인 레이아웃을 사용하여 원하는 결과를 얻을 수 있습니다. –

답변

0

이 밖으로 시도 -

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();