开发者

How do you scale down an ImageView with ObjectAnimator, but have it retain its position in layout?

I am trying to scale an ImageView down in an animation, but whenever I do so it appears to shift down and to left in the layout. Here is a screenshot before I animate:

How do you scale down an ImageView with ObjectAnimator, but have it retain its position in layout?

And here what it looks like after the animation:

How do you scale down an ImageView with ObjectAnimator, but have it retain its position in layout?

Is it possible to have the ImageView scale down, but have its top-left corner remain in the top-left corner of the layout?

Here is the code I am using:

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

The layout:

<!-- 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"
   开发者_如何学Python     android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true" />

</RelativeLayout>

The drawable resource:

How do you scale down an ImageView with ObjectAnimator, but have it retain its position in layout?


You may try to set your view's pivotX and pivotY to 0. Scaling is done from that point. I think it will work fine.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜