Wie Sie scale-down eine Bildansicht mit ObjectAnimator, aber haben Sie behalten Ihre position im layout?
Ich versuche zu skalieren, eine Bildansicht unten in einer animation, aber Wann immer ich tun, damit es angezeigt wird, Herunterschalten und nach Links in das layout. Hier ist ein screenshot, bevor ich animieren:
Und hier sieht es aus, nachdem die animation:
Ist es möglich, die Bildansicht verkleinern, aber seine oberen linken Ecke bleiben, in der oberen linken Ecke des Layouts?
Hier ist der code, den ich verwende:
//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();
}
}
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"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true" />
</RelativeLayout>
Die drawable Ressource:
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie versuchen, Ihre Ansicht pivotX und pivotY auf 0. Die Skalierung erfolgt von diesem Punkt aus. Ich denke, es wird funktionieren.