2015-05-19 6 views
12

वहाँ पूरे TextView के लेआउट स्केलिंग के बिना केवल TextView के पाठ का आकार चेतन करने के लिए एक तरीका है?एनिमेशन और नहीं पूरे TextView

enter image description here

Am, एक समान प्रभाव को प्राप्त करने के लिए एक एकल लाइन के लिए नोट पाठ फिर से आकार, जबकि इसके आकार छोटा हो जाता है की कोशिश कर रहा।

+0

उपयोग ObjectAnimator/ValueAnimator – pskink

+0

@pskink कुछ अधिक जानकारी मददगार होगा करना – cozeJ4

+0

आप की कोशिश की है TextView की एक निश्चित न्यूनतम ऊंचाई की स्थापना? 'TextView.setMinHeight()'। – Kerry

उत्तर

23

यह एक ValueAnimator साथ और मेरे सिर के ऊपर से प्राप्त किया जा सकता मुझे लगता है कि यह कुछ इस तरह दिखना चाहिए:

final TextView tv = new TextView(getApplicationContext()); 

final float startSize = 42; // Size in pixels 
final float endSize = 12; 
long animationDuration = 600; // 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(); 
0

एक @korrekorre जवाब पर अनुवर्ती कार्रवाई के रूप में: प्रलेखन सरल 012 उपयोग करने के लिए पता चलता है

final TextView tv = new TextView(getApplicationContext()); 

final float endSize = 12; 
final int animationDuration = 600; // Animation duration in ms 

ValueAnimator animator = ObjectAnimator.ofFloat(tv, "textSize", endSize); 
animator.setDuration(animationDuration); 

animator.start();  

सिर्फ एक चेतावनी है: संपत्ति आप निर्माता ("textSize" इस मामले में) को भेजना चाहिए इस काम करने के लिए के लिए एक सार्वजनिक सेटर विधि है।

तुम भी निर्माता के लिए एक startSize पारित कर सकते हैं, यदि आप तो नहीं क्षेपक प्रारंभिक बिंदु के रूप वर्तमान आकार का उपयोग करेगा

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