📜  在Android中创建Instagram / Twitter心形动画

📅  最后修改于: 2021-05-08 19:43:12             🧑  作者: Mango

在本文中,让我们学习如何在android中创建Instagram / Twitter heart like动画。 Twitter的Like动画非常出色且具有吸引力。假设有人想要制作一个Twitter,Instagram或Facebook之类的应用程序,使用户可以在其中发布信息,而该应用程序可以使用此视图。也可以使用Leonids代替它,但是与Leonids相比,它非常易于使用。这是一个动画库,动画有助于引起用户的注意,因此最好学习它。
像Twitter一样的动画1

方法

  1. build.gradle文件中添加支持库,并在“依赖项”部分中添加依赖项。
    implementation 'pub.hanks:smallbang:1.2.2'     
    
  2. 创建一个新的Android Resource Directory ,然后右键单击res文件夹-> Android Resource Directory ,确保选择资源类型为color
  3. 现在,在颜色目录中创建一个新文件text_selector.xml并添加以下代码。该文件用于根据TextView的状态选择TextColor
    text_selector.xml
    
    
        
        
    


    ic_heart.xml
    
        
    


    ic_heart_red.xml
    
      
    


    heart_selector.xml
    
    
        
        
    


    activity_main.xml
    
    
      
        
            
      
        
      
        
      
            
        
    


    MainActivity.java
    package org.geeksforgeeks.twitterLikeAnimaton;          
      
    import android.os.Bundle;
    import android.view.View;
    import androidx.annotation.Nullable;
    import androidx.appcompat.app.AppCompatActivity;
    import xyz.hanks.library.bang.SmallBangView;
      
    public class MainActivity extends AppCompatActivity {
      
        SmallBangView imageView,textView;
      
        @Override
        protected void onCreate(@Nullable Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
      
            textView = findViewById(R.id.textViewAnimation);
            imageView = findViewById(R.id.imageViewAnimation);
      
            textView.setOnClickListener(
                     new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    if (textView.isSelected()) {
                        textView.setSelected(false);
                    } else {
                        // if not selected only 
                        // then show animation.
                        textView.setSelected(true);
                        textView.likeAnimation();
                    }
                }
            });
      
            imageView.setOnClickListener(
                      new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    if (imageView.isSelected()) {
                        imageView.setSelected(false);
                    } else {
                        // if not selected only 
                        // then show animation.
                        imageView.setSelected(true);
                        imageView.likeAnimation();
                    }
                }
            });
        }
    }


  4. 现在,在drawable目录中创建一个新文件ic_heart.xml并添加以下代码,或者您可以从此Link下载矢量图像并将其粘贴到drawable文件夹中。

    ic_heart.xml

    
        
    
    
  5. 现在,在drawable目录中创建一个新文件ic_heart_red.xml并添加以下代码,或者您可以从此Link下载矢量图像并将其粘贴到drawable文件夹中。

    ic_heart_red.xml

    
      
    
    
  6. 现在,在drawable中创建一个新文件heart_selector.xml并添加以下代码。该文件用于根据ImageView的状态选择Image

    heart_selector.xml

    
    
        
        
    
    
  7. activity_main.xml文件中添加以下代码。在此文件中,我们将ImageViewTextView作为childView添加到SmallBangView布局中。添加heart_selector在TextView中的文字颜色标签的ImageView和text_Selector的SRC标签。

    activity_main.xml

    
    
      
        
            
      
        
      
        
      
            
        
    
    
  8. MainActivity中添加以下代码。 Java文件。在此文件中,我们将OnClickListner添加到ImageViewTextView中,每当用户点击视图时,它们都会自动调用。如果状态为true,即已选择ImageView或textView,则将setSelected设置为false,否则在视图上调用LikeAnimation。

    主要活动。Java

    package org.geeksforgeeks.twitterLikeAnimaton;          
      
    import android.os.Bundle;
    import android.view.View;
    import androidx.annotation.Nullable;
    import androidx.appcompat.app.AppCompatActivity;
    import xyz.hanks.library.bang.SmallBangView;
      
    public class MainActivity extends AppCompatActivity {
      
        SmallBangView imageView,textView;
      
        @Override
        protected void onCreate(@Nullable Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
      
            textView = findViewById(R.id.textViewAnimation);
            imageView = findViewById(R.id.imageViewAnimation);
      
            textView.setOnClickListener(
                     new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    if (textView.isSelected()) {
                        textView.setSelected(false);
                    } else {
                        // if not selected only 
                        // then show animation.
                        textView.setSelected(true);
                        textView.likeAnimation();
                    }
                }
            });
      
            imageView.setOnClickListener(
                      new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    if (imageView.isSelected()) {
                        imageView.setSelected(false);
                    } else {
                        // if not selected only 
                        // then show animation.
                        imageView.setSelected(true);
                        imageView.likeAnimation();
                    }
                }
            });
        }
    }
    

      作为模拟器运行