2011-08-11 5 views
9

애니메이션에서 ImageView의 배율을 조정하려고 시도하고 있지만 그렇게 할 때마다 레이아웃에서 아래로 왼쪽으로 이동하는 것처럼 보입니다.ObjectAnimator를 사용하여 ImageView의 크기를 어떻게 줄 였지만 레이아웃에서 위치를 유지합니까?

before animation

그리고 여기에 애니메이션 후 어떻게 생겼는지 :

after animation

이는 이미지 뷰가 축소 가질 수 있습니다,하지만 상단이 여기에 애니메이션을하기 전에 스크린 샷입니다 왼쪽 모서리에 왼쪽 모서리가 남아 있습니까?

// ScaleTestActivity.java 

import android.animation.AnimatorSet; 
import android.animation.ObjectAnimator; 
import android.app.Activity; 
import android.os.Bundle; 
import android.widget.ImageView; 

public class ScaleTestActivity extends Activity { 

    ImageView mImageView; 

    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     mImageView = (ImageView)findViewById(R.id.image_view); 
    } 

    @Override 
    protected void onResume() { 
     super.onResume(); 

     ObjectAnimator scaleDownX = ObjectAnimator.ofFloat(mImageView, "scaleX", 0.5f); 
     ObjectAnimator scaleDownY = ObjectAnimator.ofFloat(mImageView, "scaleY", 0.5f); 

     scaleDownX.setDuration(1000); 
     scaleDownY.setDuration(1000); 

     AnimatorSet scaleDown = new AnimatorSet(); 

     scaleDown.play(scaleDownX).with(scaleDownY); 
     scaleDown.start(); 
    } 
} 

레이아웃 :

<!-- main.xml --> 
<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 

    <ImageView 
     android:id="@+id/image_view" 
     android:src="@drawable/droid" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" 
     android:layout_alignParentLeft="true" /> 

</RelativeLayout> 

그리기 가능 자원 :

Large Android Logo

답변

13

당신은 설정하려고 할 수 있습니다보기의 pivotX와 여기

내가 사용하고있는 코드입니다 Y를 0으로 피벗시킵니다. 스케일링은이 지점에서 수행됩니다. 나는 그것이 잘 될 것이라고 생각합니다.

+0

이것은 정확히 제가 찾은 것입니다, 감사합니다! –

관련 문제