2017-02-06 2 views
1

В Android я пытаюсь fadein и fadeout 2 изображения при щелчке по image.Ex: Если я нажимаю image1, он исчезает (исчезает), а изображение2 исчезает (я вижу), и когда i щелкните изображение 2, оно исчезает и показывает мне изображение1 (исчезает). Но проблема здесь в том, что подкладка не происходит так, как ожидалось.Android fade In и исчезают 2 изображения

package com.example.sandeep.myapplication; 

import android.app.Activity; 
import android.os.Bundle; 
import android.util.Log; 
import android.view.View; 
import android.widget.ImageView; 

public class MainActivity extends Activity { 

public void fade(View view){ 
ImageView img1=(ImageView) findViewById(R.id.img1); 
ImageView img2=(ImageView) findViewById(R.id.img2); 
img1.animate().alpha(0f).setDuration(2000); 
img2.animate().alpha(1f).setDuration(2000); 
Log.i("Info:","fade method running"); 

} 

public void fade1(View view) { 
    ImageView img1 = (ImageView) findViewById(R.id.img1); 
    ImageView img2 = (ImageView) findViewById(R.id.img2); 
    img2.animate().alpha(0f).setDuration(2000); 
    img1.animate().alpha(1f).setDuration(2000); 
    Log.i("Info:","fade1 method running"); 
} 
    @Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

} 
} 

Так что, когда я нажимаю на изображении только fade1() метод пробеги, и я должен нажать несколько раз на dirrenent screenlocations сделать метод fade2() run.In моей консоли я получаю ниже упомянутые журналы,

02-07 02:29:44.088 10720-10720/com.example.sandeep.myapplication I/Info::   

fade1 method running 
02-07 02:29:49.728 10720-10720/com.example.sandeep.myapplication I/Info:: 

fade1 method running 

[ 02-07 02:29:50.005 8757: 8757 E/   ] 
[adb] handle_packet() t->online(1) p->msg.arg0(23439) p->msg.arg1(0) OPEN 


[ 02-07 02:29:50.005 8757: 8757 E/   ] 
[adb] handle the adb command, and the command = adb shell:cat 

    /proc/net/xt_qtaguid/stats | grep 10181 

[ 02-07 02:29:50.032 8757: 8757 E/   ] 
[adb] cuurent command is A_CLSE 

Помогите решить эту проблему.

ответ

1
ImageView img1 = (ImageView) findViewById(R.id.img1); 
ImageView img2 = (ImageView) findViewById(R.id.img2); 
img2.setVisibility(View.GONE); 

img1.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
fadeIn(img1, img2); 
    } 
}); 

img2.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
    fadeOut(img1, img2); 
     } 
    }); 

public void fadeIn(ImageView img1, ImageView img2) { 
      Animation fadeIn = new AlphaAnimation(0, 1); 
      fadeIn.setInterpolator(new AccelerateInterpolator()); 
      fadeIn.setDuration(1000); 
      fadeIn.setAnimationListener(new Animation.AnimationListener() { 
       @Override 
       public void onAnimationStart(Animation animation) { 
        img2.setVisibility(View.VISIBLE); 
       } 
       @Override 
       public void onAnimationEnd(Animation animation) { 
       } 
       @Override 
       public void onAnimationRepeat(Animation animation) { 
       } 
      }); 

      img2.startAnimation(fadeIn); 
      img1.setVisibility(View.GONE); 
     } 

public void fadeOut(ImageView img1, ImageView img2) { 
Animation fadeOut = new AlphaAnimation(1, 0); 
       fadeOut.setInterpolator(new AccelerateInterpolator()); 
       fadeOut.setDuration(1000); 
       fadeOut.setAnimationListener(new Animation.AnimationListener() { 
        @Override 
        public void onAnimationStart(Animation animation) { 
        } 

        @Override 
        public void onAnimationEnd(Animation animation) { 
         img2.setVisibility(View.GONE); 
        } 

        @Override 
        public void onAnimationRepeat(Animation animation) { 

        } 
       }); 

       img2.startAnimation(fadeOut); 
       img1.setVisibility(View.VISIBLE); 
      } 
     }); 
} 

Надеюсь, что это может сработать для вас.