2015-09-29 21 views
19

Làm cách nào để tăng chiều cao xem bằng cách sử dụng Hình động của sản phẩm trong Android?Hoạt ảnh động của sản phẩm Android: cách tăng chiều cao xem?

ObjectAnimator a = ObjectAnimator.ofFloat(viewToIncreaseHeight, "translationY", -100); 
a.setInterpolator(new AccelerateDecelerateInterpolator()); 
a.setDuration(1000); 
a.start(); 

Bản dịchY thực sự di chuyển chế độ xem không tăng chiều cao. Làm cách nào để tăng chiều cao của chế độ xem?

Trả lời

53
ValueAnimator anim = ValueAnimator.ofInt(viewToIncreaseHeight.getMeasuredHeight(), -100); 
anim.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { 
    @Override 
    public void onAnimationUpdate(ValueAnimator valueAnimator) { 
     int val = (Integer) valueAnimator.getAnimatedValue(); 
     ViewGroup.LayoutParams layoutParams = viewToIncreaseHeight.getLayoutParams(); 
     layoutParams.height = val; 
     viewToIncreaseHeight.setLayoutParams(layoutParams); 
    } 
}); 
anim.setDuration(DURATION); 
anim.start(); 
+0

quy mô làm tăng chiều cao theo cả hai cách. tôi muốn tăng chiều cao theo một hướng. –

+0

sử dụng 'ValueAnimator' thay vì –

+0

có, đó là những gì tôi vừa làm trước câu trả lời của bạn :-p, nhưng tôi sẽ chấp nhận nó. cảm ơn –

3

Bạn có thể sử dụng ViewPropertyAnimator, có thể giúp bạn tiết kiệm một số dòng mã:

yourView.animate().scaleY(-100f).setInterpolator(new AccelerateDecelerateInterpolator()).setDuration(1000); 

đó nên tất cả các bạn cần, hãy chắc chắn kiểm tra tài liệu và tất cả các phương pháp có sẵn cho ViewPropertyAnimator.

+0

Đừng quên các dấu ngoặc đóng trên trường hợp tạo AccelerateDecelerateInterpolator đó – RTF

+0

@ RTF Cảm ơn, đã hoàn thành. –

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