2012-01-02 13 views
11

एंड्रॉइड में एनीमेशन का उपयोग करके एक बिंदु से छवि को कैसे विकसित किया जाए?एंड्रॉइड में एक छवि को एनीमेशन का उपयोग करके एक बिंदु से कैसे विकसित किया जाए?

मेरा कहना है कि ... मेरे पास एक बटन है .. और मैं चाहता हूं कि जब मैं उस बटन पर क्लिक करता हूं तो मेरी छवि को उस बिंदु से बड़ा और बड़ा होने के लिए बढ़ना चाहिए (आरोही क्रम) ... और फिर मैं उस बटन पर फिर से क्लिक करता हूं, इसे उस बिंदु पर छोटे और छोटे को समाप्त करने के लिए

क्या कोई भी एंड्रॉइड एनीमेशन का उपयोग करके ऐसा करने में मेरी सहायता कर सकता है? मैं एंड्रॉइड

उत्तर

32

पर नया हूं, इसे एनीमेशन उपयोगिता का उपयोग करके हासिल किया जा सकता है। यह 100% 140% करने के लिए से छवि मापता है 1 सेकंड

प्लेस रेस में निम्न फ़ाइल/anim/scale.xml

<?xml version="1.0" encoding="utf-8"?> 
<set android:shareInterpolator="false"  
xmlns:android="http://schemas.android.com/apk/res/android"> 
<scale 
    android:interpolator="@android:anim/accelerate_decelerate_interpolator" 
    android:fromXScale="1.0" 
    android:toXScale="1.4" 
    android:fromYScale="1.0" 
    android:toYScale="1.4" 
    android:pivotX="50%" 
    android:pivotY="50%" 
    android:fillAfter="false" 
    android:duration="1000" /> 
</set> 

जावा कोड के लिए

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    final View view = findViewById(R.id.imageView1); 

    final Animation anim = AnimationUtils.loadAnimation(this, R.anim.scale); 

    Button button = (Button) findViewById(R.id.button1); 
    button.setOnClickListener(new OnClickListener(){ 
     @Override 
     public void onClick(View v) { 
      view.startAnimation(anim); 
     } 
    }); 
} 
+0

यू मुझे n विस्तार xplain सकते हैं ... ?? – user1125690

+1

कुछ और विवरण बहुत अच्छा होगा! – MKJParekh

+1

प्रतिक्रिया –

2

मैं तुम्हें देखने के लिए सुझाव है कि इस अतः पद पर: Android: Expand/collapse animation

public class DropDownAnim extends Animation { 
int targetHeight; 
View view; 
boolean down; 

public DropDownAnim(View view, int targetHeight, boolean down) { 
    this.view = view; 
    this.targetHeight = targetHeight; 
    this.down = down; 
} 

@Override 
protected void applyTransformation(float interpolatedTime, Transformation t) { 
    int newHeight; 
    if (down) { 
     newHeight = (int) (targetHeight * interpolatedTime); 
    } else { 
     newHeight = (int) (targetHeight * (1 - interpolatedTime)); 
    } 
    view.getLayoutParams().height = newHeight; 
    view.requestLayout(); 
} 

@Override 
public void initialize(int width, int height, int parentWidth, 
     int parentHeight) { 
    super.initialize(width, height, parentWidth, parentHeight); 
} 

@Override 
public boolean willChangeBounds() { 
    return true; 
} 
} 

आप हवलदार होगा ई उदाहरण के रूप में इसका उपयोग करने के लिए आप इसे अपने बटन पर लागू करना चाहते हैं।

+0

thnx मदद..मैं इसे स्केल एनिम – user1125690

+1

के साथ प्राप्त करने में सक्षम था यह मेरे लिए काम करता है! धन्यवाद – Rako

1

आप Rajdeep Dua के जवाब के साथ जा सकते हैं और यदि आप बढ़े हुए छवि) की तरह

<?xml version="1.0" encoding="utf-8"?> 
<set 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:fillAfter="true> 
<scale 
    android:interpolator="@android:anim/accelerate_decelerate_interpolator" 
    android:fromXScale="1.0" 
    android:toXScale="1.4" 
    android:fromYScale="1.0" 
    android:toYScale="1.4" 
    android:pivotX="50%" 
    android:pivotY="50%" 
    android:fillAfter="false" 
    android:duration="1000" /> 
</set> 
0

Android 3.0, पसंदीदा तरीका के साथ शुरू एक्सएमएल में एनीमेशन android:fillAfter="true" धारण करने के लिए जब तक आप clearAnimation (फोन चाहते हैं एनिमेट विचारों का, उपयोग android.animation पैकेज APIs.These Animator आधारित कक्षाएं देखें वस्तु के वास्तविक गुणों को बदलने के लिए है ....

या आप साधारण बातों के लिए एक ViewPropertyAnimator उपयोग कर सकते हैं - एक छवि बटन कि 1.4 x अपने आकार के 1000ms की अवधि में बढ़ता है:

imageButton.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     imageButton.animate(). 
     scaleX(1.4f). 
     scaleY(1.4f). 
     setDuration(1000).start(); 
    } 
}); 
संबंधित मुद्दे

 संबंधित मुद्दे