如何在 Android 中实现 TNImage 库?
Android 是一个开源操作系统,基于 Linux 内核,用于智能手机、平板电脑等移动设备。此外,它是为智能手表和 Android TV 开发的。他们每个人都有一个专门的接口。 Android 一直是最畅销的智能手机操作系统之一。 Android OS 由 Google 于 2005 年收购的 Android Inc. 开发。在本文中,我们将展示 TNImage 库的实现。在这里,我们将在主屏幕上放置一个图像,当我们触摸图像时,我们可以将图像从主屏幕上的一个位置移动到另一个位置。当我们在主屏幕上有很多图像时可以使用此功能,然后我们可以将图像从一个位置移动到另一个位置,并且可以再次设置图像的位置。让我们看看这个功能的实现。
分步实施
第 1 步:创建一个新项目
要在 Android Studio 中创建新项目,请参阅如何在 Android Studio 中创建/启动新项目。请注意,选择Java作为编程语言。
第 2 步:将其添加到 build.gradle 文件中
将其添加到存储库末尾的根“build.gradle”中:
allprojects {
repositories {
…
maven { url ‘https://jitpack.io’ }
}
}
包括以下依赖项。
compile ‘com.github.AmeerHamzaaa:TNImageView-Android:0.1.2’
第 3 步:使用 activity_main.xml 文件
转到activity_main.xml文件并参考以下代码。下面是activity_main.xml文件的代码。
XML
Java
package com.anni.shareimage;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.animation.AccelerateInterpolator;
import android.view.animation.AlphaAnimation;
import android.view.animation.Animation;
import android.view.animation.DecelerateInterpolator;
import android.widget.Button;
import android.widget.ImageView;
import java.util.Random;
public class RotateCoin extends AppCompatActivity {
public static final Random RANDOM = new Random();
private ImageView coin;
private Button btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_rotate_coin);
coin = (ImageView) findViewById(R.id.coin);
btn = (Button) findViewById(R.id.btn);
// click on the button to flip
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
flipCoin();
}
});
}
private void flipCoin() {
Animation fadeOut = new AlphaAnimation(1, 0);
fadeOut.setInterpolator(new AccelerateInterpolator());
// set the duration
fadeOut.setDuration(1000);
fadeOut.setFillAfter(true);
fadeOut.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
}
@Override
public void onAnimationEnd(Animation animation) {
// add the images when rotating
coin.setImageResource(RANDOM.nextFloat() > 0.5f ? R.drawable.ic_coin : R.drawable.ic_coins);
Animation fadeIn = new AlphaAnimation(0, 1);
fadeIn.setInterpolator(new DecelerateInterpolator());
// set the duration
fadeIn.setDuration(3000);
fadeIn.setFillAfter(true);
coin.startAnimation(fadeIn);
}
@Override
public void onAnimationRepeat(Animation animation) {
}
});
coin.startAnimation(fadeOut);
}
}
第 4 步:使用 MainActivity。Java
转到MainActivity。 Java文件并参考以下代码。下面是MainActivity 的代码。Java
Java
package com.anni.shareimage;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.animation.AccelerateInterpolator;
import android.view.animation.AlphaAnimation;
import android.view.animation.Animation;
import android.view.animation.DecelerateInterpolator;
import android.widget.Button;
import android.widget.ImageView;
import java.util.Random;
public class RotateCoin extends AppCompatActivity {
public static final Random RANDOM = new Random();
private ImageView coin;
private Button btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_rotate_coin);
coin = (ImageView) findViewById(R.id.coin);
btn = (Button) findViewById(R.id.btn);
// click on the button to flip
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
flipCoin();
}
});
}
private void flipCoin() {
Animation fadeOut = new AlphaAnimation(1, 0);
fadeOut.setInterpolator(new AccelerateInterpolator());
// set the duration
fadeOut.setDuration(1000);
fadeOut.setFillAfter(true);
fadeOut.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
}
@Override
public void onAnimationEnd(Animation animation) {
// add the images when rotating
coin.setImageResource(RANDOM.nextFloat() > 0.5f ? R.drawable.ic_coin : R.drawable.ic_coins);
Animation fadeIn = new AlphaAnimation(0, 1);
fadeIn.setInterpolator(new DecelerateInterpolator());
// set the duration
fadeIn.setDuration(3000);
fadeIn.setFillAfter(true);
coin.startAnimation(fadeIn);
}
@Override
public void onAnimationRepeat(Animation animation) {
}
});
coin.startAnimation(fadeOut);
}
}
输出: