2011-08-11 18 views
9

Tôi đang cố gắng chia tỷ lệ một ImageView xuống trong một hoạt ảnh, nhưng bất cứ khi nào tôi làm như vậy nó xuất hiện để chuyển xuống và sang trái trong bố cục. Đây là một ảnh chụp màn hình trước khi tôi phát hình động:Làm thế nào để bạn co giãn xuống một ImageView với ObjectAnimator, nhưng nó có giữ nguyên vị trí của nó trong bố trí không?

before animation

Và đây những gì nó trông giống như sau khi hình ảnh động:

after animation

Có thể có ImageView quy mô xuống, nhưng có hàng đầu góc bên trái vẫn ở góc trên cùng bên trái của bố cục?

Đây là mã tôi đang sử dụng:

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

Cách bố trí:

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

Nguồn drawable:

Large Android Logo

Trả lời

13

Bạn có thể cố gắng thiết lập xem của bạn pivotX và pivotY đến 0. Scaling được thực hiện từ thời điểm đó. Tôi nghĩ nó sẽ hoạt động tốt.

+0

Đây chính xác là những gì tôi đang tìm kiếm, cảm ơn! –

Các vấn đề liên quan