How to disappear between two images?

Ok, help a little, so I have two images uploaded to my splash screen. The first image opens (launching the splash screen), after which the second image opens, as soon as the second image closes the start of mainactivity. Now my question is how to make my first image fade out and then fit in with my second image?

-Oh yes, and no cross fading -Just a complete disappearance and transition -Thank you in advance

-The splash.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_gravity="center" android:id="@+id/lin_lay" android:gravity="center" > <ImageView android:contentDescription="@string/desc" android:orientation="horizontal" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/spinning_wheel_image" android:background="@drawable/splashscreen1" /> </LinearLayout> 

Mainanim.xml file

 <animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="false"> <item android:drawable="@drawable/splashscreen1" android:duration="2500" /> <item android:drawable="@drawable/splashscreen2" android:duration="4000" /> </animation-list> 

Splash.java

 @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.splash); ourSong = MediaPlayer.create(Splash.this, R.raw.splashsound); ourSong.start(); Thread timer = new Thread(){ public void run(){ try{ sleep(10500); } catch (InterruptedException e){ e.printStackTrace(); }finally{ Intent openStartingPoint = new Intent("com.theapplication.app.STARTINGPOINT"); startActivity(openStartingPoint); } } }; timer.start(); } @Override public void setRequestedOrientation(int requestedOrientation) { // TODO Auto-generated method stub super.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); } @Override public void onWindowFocusChanged(boolean hasFocus) { // TODO Auto-generated method stub super.onWindowFocusChanged(hasFocus); ImageView mainimage = (ImageView)findViewById(R.id.spinning_wheel_image); mainimage.setBackgroundResource(R.anim.mainamin); mainanimation = (AnimationDrawable) mainimage.getBackground(); mainanimation.start(); 
+4
source share
1 answer

use ImageSwitcher instead of ImageView , which support it on their own. see this example:

http://www.java2s.com/Code/Android/UI/UsingImageSwitcher.htm

you can add animation as follows:

 imageSwitcher.setInAnimation(fadeInAnimation); imageSwitcher.setOutAnimation(fadeOutAnimation); 

// my test:

  public class IntroActivity extends Activity implements ViewFactory { private static final String TAG = "IntroActivity"; private final int[] images = { R.drawable.img3, R.drawable.img2, R.drawable.img1, R.drawable.img4, R.drawable.img5, R.drawable.img6, R.drawable.img7, R.drawable.img8 }; private int index = 0; private final int interval = 10000; private boolean isRunning = true; @Override public void onCreate(Bundle bundle) { super.onCreate(bundle); setContentView(R.layout.activity_intro); startAnimatedBackground(); } private void startAnimatedBackground() { Animation aniIn = AnimationUtils.loadAnimation(this, android.R.anim.fade_in); aniIn.setDuration(3000); Animation aniOut = AnimationUtils.loadAnimation(this, android.R.anim.fade_out); aniOut.setDuration(3000); final ImageSwitcher imageSwitcher = (ImageSwitcher) findViewById(R.id.imageSwitcher1); imageSwitcher.setInAnimation(aniIn); imageSwitcher.setOutAnimation(aniOut); imageSwitcher.setFactory(this); imageSwitcher.setImageResource(images[index]); final Handler handler = new Handler(); Runnable runnable = new Runnable() { @Override public void run() { if (isRunning) { index++; index = index % images.length; Log.d("Intro Screen", "Change Image " + index); imageSwitcher.setImageResource(images[index]); handler.postDelayed(this, interval); } } }; handler.postDelayed(runnable, interval); } @Override public View makeView() { ImageView imageView = new ImageView(this); imageView.setScaleType(ImageView.ScaleType.CENTER_CROP); imageView.setLayoutParams(new ImageSwitcher.LayoutParams( LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)); return imageView; } @Override public void finish() { isRunning = false; super.finish(); } } 

to start the next activity, in @Override public void run() { if (isRunning) {

just check the index, if the index is 1, then start the next operation and complete the current one;

+10
source

All Articles