2011-08-11 11 views
9

Próbuję przeskalować ImageView w dół w animacji, ale gdy to zrobię, wydaje się przesuwać w dół i w lewo w układzie. Oto zrzut ekranu przed animowanie:W jaki sposób zmniejszyć skalę ImageView za pomocą ObjectAnimatora, ale czy zachowuje on swoją pozycję w układzie?

before animation

i oto jak to wygląda po animację:

after animation

to możliwe, aby mieć ImageView skalowanie w dół, ale mają swój szczyt - lewy róg pozostaje w lewym górnym rogu układu?

Oto kod używam:

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

Układ:

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

odkształcalne zasób:

Large Android Logo

Odpowiedz

13

Możesz spróbować ustawić Państwa zdanie jest pivotX i obrotowe do 0. Skalowanie odbywa się od tego momentu. Myślę, że to zadziała dobrze.

+0

To jest dokładnie to, czego szukałem, dzięki! –

Powiązane problemy