📜  如何将Florent LongShadow添加到Android应用?

📅  最后修改于: 2021-05-09 17:03:34             🧑  作者: Mango

LongShadow是一个Android库,使我们可以轻松地在Android Studio中为不同的视图添加长长的阴影。我们可以使用长长的阴影使应用程序更具吸引力和吸引力。下面给出了一个示例GIF,以了解我们将在本文中做些什么。注意,我们将使用Java语言实现该项目。

在Android App Sample GIF中添加Florent LongShadow

分步实施

步骤1:创建一个新项目

要在Android Studio中创建新项目,请参阅如何在Android Studio中创建/启动新项目。请注意,选择Java作为编程语言。

第2步:在进入编码部分之前,请先执行一些预任务

转到应用程序> res>值> colors.xml文件,然后设置项目的颜色。

XML


  
    #0F9D58
    #0F9D58
    #05af9b
  


XML


  
    
    
  
        
        
  
        
        
  
    
      
    
    
      


Java
// getting Shadow seekBar reference
SeekBar seekBar =(SeekBar)findViewById(R.id.seekBarShadow);
  
// getting longShadow reference
LongShadow longShadow =(LongShadow)findViewById(R.id.longShadow);
  
// seekBar change listener for changing the shadow  angle
seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
           @Override
           public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
                // change the shadow angle
                longShadow.setShadowAngle(progress);
           }
  
           @Override
           public void onStartTrackingTouch(SeekBar seekBar) {
  
           }
  
           @Override
           public void onStopTrackingTouch(SeekBar seekBar) {
  
       }
});


Java
import android.os.Bundle;
import android.widget.SeekBar;
  
import androidx.appcompat.app.AppCompatActivity;
  
import com.github.florent37.longshadow.LongShadow;
  
public class MainActivity extends AppCompatActivity {
  
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
  
        // getting Shadow seekBar reference
        SeekBar seekBar = (SeekBar) findViewById(R.id.seekBarShadow);
          
        // getting longShadow reference
        LongShadow longShadow = (LongShadow) findViewById(R.id.longShadow);
          
        // seekBar change listener for changing the shadow  angle
        seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
            @Override
            public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
                // change the shadow angle
                longShadow.setShadowAngle(progress);
            }
  
            @Override
            public void onStartTrackingTouch(SeekBar seekBar) {
  
            }
  
            @Override
            public void onStopTrackingTouch(SeekBar seekBar) {
  
            }
        });
    }
}


转到Gradle脚本> build.gradle(模块:应用程序)部分,导入以下依赖项,然后在上面的弹出窗口中单击“立即同步”。

步骤3:设计UI

activity_main.xml中,删除默认的Text View,然后将布局更改为Relative布局,并在其中添加LongShadow并在其中添加一个TextView和ImageView(我们可以在其中添加从1到n个布局中的任意多个布局),并在相对布局,我们还添加了一个SeekBar(用于更改阴影的角度),如下所示。导航到应用程序> res>布局> activity_main.xml,然后将以下代码添加到该文件中。以下是activity_main.xml文件的代码。

XML格式



  
    
    
  
        
        
  
        
        
  
    
      
    
    
      

LongShadow的属性

  • app:shadow_angle->用于设置阴影的角度[ Java的setShadowAngle(float value)方法]
  • app:shadow_color->用于设置阴影颜色[ Java的setShadowColor(int color)方法]

步骤4:编码部分

打开MainActivity。 Java文件并在onCreate()中创建并初始化LongShadowSeekBar ,并将OnSeekBarChangeListener添加到SeekBar,并在其onProgressChanged(SeekBar seekBar,int progress,boolean fromUser)内设置长阴影角的值,如下所示

Java

// getting Shadow seekBar reference
SeekBar seekBar =(SeekBar)findViewById(R.id.seekBarShadow);
  
// getting longShadow reference
LongShadow longShadow =(LongShadow)findViewById(R.id.longShadow);
  
// seekBar change listener for changing the shadow  angle
seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
           @Override
           public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
                // change the shadow angle
                longShadow.setShadowAngle(progress);
           }
  
           @Override
           public void onStartTrackingTouch(SeekBar seekBar) {
  
           }
  
           @Override
           public void onStopTrackingTouch(SeekBar seekBar) {
  
       }
});

以下是MainActivity的完整代码。 Java文件。在代码内部添加了注释,以更详细地了解代码。

Java

import android.os.Bundle;
import android.widget.SeekBar;
  
import androidx.appcompat.app.AppCompatActivity;
  
import com.github.florent37.longshadow.LongShadow;
  
public class MainActivity extends AppCompatActivity {
  
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
  
        // getting Shadow seekBar reference
        SeekBar seekBar = (SeekBar) findViewById(R.id.seekBarShadow);
          
        // getting longShadow reference
        LongShadow longShadow = (LongShadow) findViewById(R.id.longShadow);
          
        // seekBar change listener for changing the shadow  angle
        seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
            @Override
            public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
                // change the shadow angle
                longShadow.setShadowAngle(progress);
            }
  
            @Override
            public void onStartTrackingTouch(SeekBar seekBar) {
  
            }
  
            @Override
            public void onStopTrackingTouch(SeekBar seekBar) {
  
            }
        });
    }
}

输出: