在本文中,我们将学习如何使用Java在android中添加KenBurns View 。 KenBurns View是有用的库,它是ImageView的扩展。通过为Drawable设置动画效果,可以创建身临其境的体验。我们可以使用RandomTransitionGenerator来更改持续时间,并充当过渡的插补器。如果我们想对过渡有更多的控制,那么我们可以实现自己的TransitionGenerator 。
方法:
- 在build.gradle文件中添加支持库,并在“依赖项”部分中添加依赖项。通过此KenBurns视图,可以直接将其添加到xml文件中,并具有许多内置函数来轻松自定义它。
dependencies { implementation 'com.flaviofaria:kenburnsview:1.0.7' }
- 现在,将以下代码添加到activity_main.xml文件中。在此文件中,我们在布局中添加KenBurns View。
activity_main.xml
MainActivity.java
package org.geeksforgeeks.gfganimatedGradient; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.view.animation.AccelerateDecelerateInterpolator; import com.flaviofaria.kenburnsview.KenBurnsView; import com.flaviofaria.kenburnsview.RandomTransitionGenerator; public class MainActivity extends AppCompatActivity { KenBurnsView kenBurnsView; boolean moving = true; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); kenBurnsView = findViewById(R.id.kView); AccelerateDecelerateInterpolator interpolator = new AccelerateDecelerateInterpolator(); // It is used to change the duration and // the interpolator of transitions RandomTransitionGenerator generator = new RandomTransitionGenerator(2000, interpolator); kenBurnsView.setTransitionGenerator(generator); kenBurnsView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (moving) { kenBurnsView.pause(); moving = false; } else { kenBurnsView.resume(); moving = true; } } }); } }
- 现在,在MainActivity中添加以下代码。 Java文件。 onClickListener与kenBurns视图一起添加。如果动画在运动中,则动画将暂停,反之亦然。
主要活动。Java
package org.geeksforgeeks.gfganimatedGradient; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.view.animation.AccelerateDecelerateInterpolator; import com.flaviofaria.kenburnsview.KenBurnsView; import com.flaviofaria.kenburnsview.RandomTransitionGenerator; public class MainActivity extends AppCompatActivity { KenBurnsView kenBurnsView; boolean moving = true; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); kenBurnsView = findViewById(R.id.kView); AccelerateDecelerateInterpolator interpolator = new AccelerateDecelerateInterpolator(); // It is used to change the duration and // the interpolator of transitions RandomTransitionGenerator generator = new RandomTransitionGenerator(2000, interpolator); kenBurnsView.setTransitionGenerator(generator); kenBurnsView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (moving) { kenBurnsView.pause(); moving = false; } else { kenBurnsView.resume(); moving = true; } } }); } }
- 现在编译并运行Android应用程序。
输出: