2011-10-06 40 views
6

Tôi muốn có thể thực hiện hoạt ảnh văn bản và thay đổi kích thước của văn bản trong một TextView. Tôi đọc rằng có hình ảnh động bất động sản trong android nhưng nếu ai đó biết một mã đơn giản có thể làm điều này cho tôi hoặc một ví dụ ở đâu đó, tôi sẽ đánh giá cao nó. Cảm ơn bạn trước!hoạt ảnh của kích thước văn bản của TextView

+0

[Hoạt ảnh của kích thước văn bản của TextView android chứ không phải toàn bộ TextView] (// stackoverflow.com/a/30324368) – Tushar

Trả lời

15

scale.xml

<?xml version="1.0" encoding="utf-8"?> 
<set 
    xmlns:android="http://schemas.android.com/apk/res/android"> 
    <scale 
      android:fromXScale="1.0" 
      android:fromYScale="1.0" 
      android:toXScale="2.0" 
      android:toYScale="2.0" 
      android:duration="3000"></scale> 
</set> 

Một chức năng thành một Hoạt động:

private void RunAnimation() 
{ 
    Animation a = AnimationUtils.loadAnimation(this, R.anim.scale); 
    a.reset(); 
    TextView tv = (TextView) findViewById(R.id.firstTextView); 
    tv.clearAnimation(); 
    tv.startAnimation(a); 
} 

trích xuất và sửa đổi từ here

+1

Cảm ơn bạn đã giúp tôi rất nhiều. Nhưng tôi cũng đi lang thang nó có thể được thực hiện với một hình ảnh động tài sản trên văn bản, và không phải là toàn bộ văn bản xem? – Sandra

+0

'scale.xml' đi theo **/res/anim/** – gnB

3

Làm thế nào về this link? Đặc biệt là các ví dụ quy mô. Nó cung cấp mã nguồn và video cho một số loại hình ảnh động Android khác nhau.

+1

Cảm ơn bạn đã nhanh chóng esponse và liên kết. Tôi sẽ kiểm tra nó. – Sandra

+0

Không dựa vào liên kết vì nó có thể bị hỏng trong tương lai. Thêm phần liên quan của liên kết vào câu trả lời. –

5
Animation animation=new TranslateAnimation(0,480,0,0); 
animation.setDuration(5000); 
animation.setRepeatMode(Animation.RESTART); 
animation.setRepeatCount(Animation.INFINITE); 
text.startAnimation(animation); 
// applying animation to textview object.. 

Nếu bạn đang sử dụng sự kiện nút để hiển thị hình ảnh động sau đó đặt mã bên trong onClick() nếu không sử dụng phương pháp ghi đè lênWindowFocusChanged (Boolean hasFocus) để bắt đầu hoạt hình

1
lớp

Sử dụng ValueAnimator trong android

final float startSize = o; // Size in pixels 
    final float endSize = 30; 
    final int animationDuration = 1000; // Animation duration in ms 

    ValueAnimator animator = ValueAnimator.ofFloat(startSize, endSize); 
    animator.setDuration(animationDuration); 

    animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { 
     @Override 
     public void onAnimationUpdate(ValueAnimator valueAnimator) { 
      float animatedValue = (float) valueAnimator.getAnimatedValue(); 
      tv.setTextSize(animatedValue); 
     } 
    }); 

    animator.start(); 

tham khảo liên kết này ValueAnimator

Một giải pháp khác là áp dụng hình ảnh động quy mô trên TextView hoặc bố trí mẹ

ScaleAnimation scaleAnimation = new ScaleAnimation(0.7f, 1.1f, 0.7f, 1.1f, ScaleAnimation.RELATIVE_TO_SELF, 0.5f, 
        ScaleAnimation.RELATIVE_TO_SELF, 0.5f); 
scaleAnimation.setDuration(600); 
viewZoom.startAnimation(scaleAnimation); 
+0

Mã được sao chép từ [câu trả lời này] (http://stackoverflow.com/a/30324368/2025923) – Tushar

+0

Hoạt động trơn tru ngay cả trên OnePlus3T ( –

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