анимация android: анимация линии

Я новичок в Android анимации, я хочу реализовать линию анимации, которая является нижней строкой редактирования текста в android.когда фокус находится на поле электронной почты,когда фокус переходит в поле пароля, я хочу, чтобы нижняя строка android text edit анимировалась и шла под полем пароля.как показано ниже.Я пытался использовать анимацию пути, но я не знаю, как анимировать линию в анимации пути с круговым путем.Пожалуйста помочь.Заранее спасибо.Введите описание изображения здесь

2 ответа

  1. Эти анимации достигаются с помощью векторных drawables в android. В частности, SVG (масштабируемая векторная графика).

    Это просто xml-файл с данными пути, и вы можете манипулировать значениями, используя аниматор объектов для достижения желаемой анимации. Наконец, соедините его с другим drawable xml.

    Вот пример реализации :

    // пример xml-файла данных векторного пути

        <?xml version="1.0" encoding="utf-8"?> 
    <vector  
    android_viewportWidth="170" 
    
    android_viewportHeight="170" 
    
    android_width="500dp" 
    
    android_height="500dp"> <path 
    
    android_name="head" 
    
    android_fillColor="@color/
    
    android_green" 
    
    android_pathData="M85,40 c10,0 20,0 30,0 c0,-5 -10,-20 -30,-20 c-20,0 -30,15 -30,20 c10,0 20,0 30,0"/>
     </vector>
    

    // пример файла аниматора объектов

        <?xml version="1.0" encoding="utf-8"?> 
    <set > 
    <objectAnimator android_duration="@integer/morphing_time" 
    
    android_propertyName="pathData" 
    
    android_valueType="pathType" 
    
    android_valueFrom="M85,40 c10,0 20,0 30,0 c0,-5 -10,-20 -30,-20 c-20,0 -30,15 -30,20 c10,0 20,0 30,0" 
    
    android_valueTo="M108,35 c5.587379,-6.7633 9.348007,-16.178439 8.322067,-25.546439 c-8.053787,0.32369 -17.792625,5.36682 -23.569427,12.126399 c-5.177124,5.985922 -9.711121,15.566772 -8.48777,24.749359 c8.976891,0.69453 18.147476,-4.561718 23.73513,-11.329308"/> 
    
    <objectAnimator 
    
    android_duration="@integer/morphing_time" 
    
    android_propertyName="fillColor" 
    
    android_valueFrom="@color/
    
    android_green" 
    
    android_valueTo="@color/apple_black" />
     </set>
    

    // теперь анимируйте его так в папке drawables

     <?xml version="1.0" encoding="utf-8"?> <animated-vector  
    
    android_drawable="@drawable/
    
    android_logo_vector_morphable"> 
    
    <target android_animation="@animator/head_leaf_transition" 
    
    android_name="head"/> 
    </animated-vector>
    

    Источник: Lewis Mac Geary

    Дайте мне знать, если эта информация поможет вам.