如何在安卓中添加 KenBurns 视图?
原文:https://www . geesforgeks . org/how-add-kenburns-view-in-Android/
在本文中,我们将学习如何使用 java 在 android 中添加 KenBurns View 。KenBurns 视图是一个有用的库,是 ImageView 的扩展。它通过制作其 Drawable 的动画来创建沉浸式体验。我们可以使用随机过渡生成器来更改持续时间,并充当过渡的插值器。如果我们想对过渡有更多的控制,那么我们可以实现我们自己的过渡生成器。 进场:
-
在 build.gradle 文件中添加支持库,并在依赖项部分添加依赖项。通过这个肯伯恩斯视图可以直接添加到 xml 文件中,并有许多内置的功能来轻松定制它。
java dependencies { implementation 'com.flaviofaria:kenburnsview:1.0.7' }
-
现在在 activity_main.xml 文件中添加以下代码。在这个文件中,我们在布局中添加了肯伯恩斯视图。
activity _ main . XML
```java <?xml version="1.0" encoding="utf-8"?>
<com.flaviofaria.kenburnsview.KenBurnsView android:id="@+id/kView" android:layout_width="match_parent" android:layout_height="match_parent" android:scaleType="fitXY" android:src="@drawable/g" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" />
```
-
现在在MainActivity.java文件中添加以下代码。onClickListener 添加了 kenBurns 视图。如果动画处于运动状态,它会使动画暂停,反之亦然。
MainActivity.java
```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; } } }); } } ```
-
现在编译并运行安卓应用。
输出:
[https://media.geeksforgeeks.org/wp-content/uploads/20200605125906/Record_2020-06-05-12-56-45_de653d391fd57e9d09033828c1f8381e.mp4](https://media.geeksforgeeks.org/wp-content/uploads/20200605125906/Record_2020-06-05-12-56-45_de653d391fd57e9d09033828c1f8381e.mp4)版权属于:月萌API www.moonapi.com,转载请注明出处