当我点击其中任何一个时交换的2个图像

时间:2017-11-19 17:02:30

标签: android

标题是什么。首先,我创建了一个方法,从一个图像交换到另一个图像,它的工作原理。当我添加第二种方法时,为了反转动作并交换回第一种方法,没有任何改变。它甚至没有从第一张图像恢复到第二张图像。以下是代码:

public void fade(View view) {

    ImageView laxus = (ImageView) findViewById(R.id.laxus_shirt);
    ImageView laxos2 = (ImageView) findViewById(R.id.laxus2);
    laxus.animate().alpha(0f).setDuration(1000);
    laxos2.animate().alpha(1f).setDuration(1000);

}

public void fadetoblack(View view) {

    ImageView laxusius = (ImageView) findViewById(R.id.laxus_shirt);
    ImageView laxosios2 = (ImageView) findViewById(R.id.laxus2);
    laxosios2.animate().alpha(0f).setDuration(1000);
    laxusius.animate().alpha(1f).setDuration(1000);

}

提前谢谢。

2 个答案:

答案 0 :(得分:1)

您需要致电start()来触发动画。

laxus.animate().alpha(0f).setDuration(1000).start();
laxos2.animate().alpha(1f).setDuration(1000).start();

我建议您使用Util方法执行交叉渐变。像下面的东西

public static void crossFade(View incomingView, View outGoingView, int outGoingViewVisibility) {
 outGoingView.setAlpha(1);

 ViewCompat.animate(outGoingView).alpha(0).setListener(new ViewPropertyAnimatorListener() {
  @Override
  public void onAnimationStart(View view) {

  }

  @Override
  public void onAnimationEnd(View view) {
   view.setVisibility(outGoingViewVisibility);
  }

  @Override
  public void onAnimationCancel(View view) {

  }
 }).start();

 incomingView.setVisibility(View.VISIBLE);
 incomingView.setAlpha(0);
 ViewCompat.animate(incomingView).setListener(null).alpha(1).start();
}

答案 1 :(得分:0)

使用ViewSwitcher可能是一种选择。 添加带有2个ImageView的viewSwitcher

<ViewSwitcher xmlns:android="http://schemas.android.com/apk/res/android"
                android:id="@+id/switcher"
                android:layout_width="match_parent"
                android:layout_height="match_parent">

                <ImageView
                    android:id="@+id/laxus"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"/>


                <ImageView
                    android:id="@+id/laxus2"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent" />

            </ViewSwitcher>`

在活动onCreate上添加代码

    ViewSwitcher viewSwitcher=(ViewSwitcher)findViewById(R.id. switcher); // initiate a ViewSwitcher
    Animation in = AnimationUtils.loadAnimation(this,android.R.anim.slide_in_left); // load in  animation
    Animation out = AnimationUtils.loadAnimation(this,android.R.anim.slide_out_right); // load out animation
    viewSwitcher.setInAnimation(in); // set in Animation for ViewSwitcher
    viewSwitcher.setOutAnimation(out); // set out Animation for ViewSwitcher

如果您想在ImageViews通话方法viewSwitcher.showNext();viewSwitcher.showPrevious();之间切换 要验证显示哪个视图,请使用viewSwitcher.getCurrentView();