问题
I done a fade
animation with three images
displayed in splash screen.I got an output successfully.
But I got a two issue
:
Time Loading:
- It tooks more time to load a splash screen.It needs to enter into the application as soon as possible.
App doesn't Close:
After entered into an Application.I am trying to close these app with the help of Back Button in emulator.But It never closes an
application.It stays in an application itself.In log cats,I seen the loop 1,2 and 3 continues again and again.I can't able to close my app.
If I am press the Home Button,It displays a home screen but again enter into an application automatically.
LogCat:
I am not getting any logcat error.But you can see that logcat readings always running.It never gets stop.The loop 1,2 and 3 continuously reading in logcat.For these it never closes an application.Then If I am press the home button,home screen would be displayed.But sometimes it automatically enter into these application.
06-25 05:46:27.654: V/test(1842): 1
06-25 05:46:27.684: V/test(1842): 2
06-25 05:46:31.764: V/test(1842): 1
06-25 05:46:35.654: V/test(1842): 2
06-25 05:46:35.684: V/test(1842): 3
06-25 05:46:39.764: V/test(1842): 2
06-25 05:46:43.654: V/test(1842): 3
06-25 05:46:43.684: V/test(1842): 1
06-25 05:46:44.914: I/Choreographer(1842): Skipped 36 frames! The application may be doing too much work on its main thread.
06-25 05:46:46.524: I/ImageCache(1842): Memory cache created (size = 12288)
06-25 05:46:46.534: V/test1(1842): testhere
06-25 05:46:46.534: V/3333333(1842): 3333333
06-25 05:46:47.334: V/####(1842): TFH BANNER1
06-25 05:46:47.434: V/test2(1842): testhere
06-25 05:46:47.434: V/test3(1842): testhere
06-25 05:46:47.434: V/####(1842): TFH BANNER2
06-25 05:46:47.444: V/####(1842): TFH BANNER3
06-25 05:46:47.494: V/####(1842): TFH BANNER4
06-25 05:46:47.674: V/####(1842): TFH BANNER1
06-25 05:46:47.674: V/test2(1842): testhere
06-25 05:46:47.684: V/test3(1842): testhere
06-25 05:46:47.684: I/ImageWorker(1842): cancelPotentialWork - cancelled work for http://tfhapp.fathershouse.in/banner-gallery/tfh-banner1-large-1.jpg
06-25 05:46:47.684: V/####(1842): TFH BANNER2
06-25 05:46:47.684: V/####(1842): TFH BANNER3
06-25 05:46:47.684: V/####(1842): TFH BANNER4
06-25 05:46:47.764: V/test(1842): 3
06-25 05:46:47.864: V/APIServiceHandler(1842): API CALLhttp://tfhapp.fathershouse.in/api/video.php
06-25 05:46:47.864: I/ImageWorker(1842): doInBackground - starting work
06-25 05:46:48.004: V/####(1842): TFH BANNER1
06-25 05:46:48.004: V/test2(1842): testhere
06-25 05:46:48.014: V/test3(1842): testhere
06-25 05:46:48.014: V/####(1842): TFH BANNER2
06-25 05:46:48.024: V/####(1842): TFH BANNER3
06-25 05:46:48.024: V/####(1842): TFH BANNER4
06-25 05:46:48.034: V/####(1842): TFH BANNER1
06-25 05:46:48.044: V/test2(1842): testhere
06-25 05:46:48.044: V/test3(1842): testhere
06-25 05:46:48.064: V/####(1842): TFH BANNER2
06-25 05:46:48.144: V/####(1842): TFH BANNER3
06-25 05:46:48.274: I/Choreographer(1842): Skipped 1086 frames! The application may be doing too much work on its main thread.
06-25 05:46:48.674: I/ImageCache(1842): Disk cache initialized
06-25 05:46:48.854: I/Choreographer(1842): Skipped 205 frames! The application may be doing too much work on its main thread.
06-25 05:46:49.164: V/####(1842): TFH BANNER1
06-25 05:46:49.254: V/test2(1842): testhere
06-25 05:46:49.254: V/test3(1842): testhere
06-25 05:46:49.264: V/####(1842): TFH BANNER2
06-25 05:46:49.324: V/####(1842): TFH BANNER3
06-25 05:46:49.324: V/####(1842): TFH BANNER4
06-25 05:46:49.374: V/####(1842): TFH BANNER1
06-25 05:46:49.434: V/test2(1842): testhere
06-25 05:46:49.434: V/test3(1842): testhere
06-25 05:46:49.434: I/ImageWorker(1842): cancelPotentialWork - cancelled work for http://tfhapp.fathershouse.in/banner-gallery/tfh-banner1-large-1.jpg
Below I posted my entire core related to SplashActivity.
SplashActivity.java:
public class SplashActivity extends Activity {
public int currentimageindex = 0;
Timer timer;
TimerTask task;
ImageView slidingimage;
int count = 0;
private int[] IMAGE_IDS = { R.drawable.spl1, R.drawable.spl2,
R.drawable.spl3 };
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout_splash);
final Handler mHandler = new Handler();
// Create runnable for posting
final Runnable mUpdateResults = new Runnable() {
public void run() {
AnimateandSlideShow();
}
};
int delay = 1000; // delay for 1 sec.
int period = 8000; // repeat every 4 sec.
Timer timer = new Timer();
timer.scheduleAtFixedRate(new TimerTask() {
public void run() {
mHandler.post(mUpdateResults);
count = count + 1;
Log.v("test", count + "");
if (count >3) {
Intent i=new Intent(SplashActivity.this,HomeActivity.class);
startActivity(i);
count=0;
}
}
}, delay, period);
}
//
// public void onClick(View v) {
//
// finish();
// android.os.Process.killProcess(android.os.Process.myPid());
// }
/**
* Helper method to start the animation on the splash screen
*/
private void AnimateandSlideShow() {
slidingimage = (ImageView) findViewById(R.id.ImageView3_Left);
slidingimage.setImageResource(IMAGE_IDS[currentimageindex
% IMAGE_IDS.length]);
currentimageindex++;
Animation rotateimage = AnimationUtils.loadAnimation(this,
R.anim.custom_anim);
slidingimage.startAnimation(rotateimage);
// Log.v("test","animation slide");
}
}
layout_splash.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<ImageView
android:id="@+id/ImageView3_Left"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|center_horizontal" />
</LinearLayout>
custom_anim.xml:
<?xml version="1.0" encoding="utf-8" ?>
<set
xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false">
<rotate
android:fromDegrees="0"
android:toDegrees="360"
android:pivotX="50%"
android:pivotY="50%"
android:duration="2000" />
<alpha
android:fromAlpha="0.0"
android:toAlpha="1.0"
android:duration="2000">
</alpha>
<scale
android:pivotX="50%"
android:pivotY="50%"
android:fromXScale=".1"
android:fromYScale=".1"
android:toXScale="1.0"
android:toYScale="1.0"
android:duration="2000" />
</set>
fade_in.xml:
<?xml version="1.0" encoding="utf-8" ?>
<set
xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false">
<alpha
android:fromAlpha="0.0"
android:toAlpha="1.0"
android:duration="2500">
</alpha>
</set>
fade_in2.xml:
<?xml version="1.0" encoding="utf-8" ?>
<set
xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false">
<alpha
android:fromAlpha="0.0"
android:toAlpha="1.0"
android:duration="2500"
android:startOffset="2500">
</alpha>
</set>
I doesn't know how to solve these problem.Anybody can help me if you know how to solve these.Thank You.
回答1:
Please refer this code segments for solution of your problem..
package com.example.splashanimation;
import java.util.Timer;
import java.util.TimerTask;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.util.Log;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.ImageView;
public class MainActivity extends Activity {
public int currentimageindex = 0;
Timer timer;
TimerTask task;
ImageView slidingimage;
int count = 0;
private int[] IMAGE_IDS = { R.drawable.img1, R.drawable.img2, R.drawable.img3 };
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final Handler mHandler = new Handler();
// Create runnable for posting
final Runnable mUpdateResults = new Runnable() {
public void run() {
AnimateandSlideShow();
}
};
int delay = 500; // delay for 1 sec.
int period = 4000; // repeat every 4 sec.
final Timer timer = new Timer();
timer.scheduleAtFixedRate(new TimerTask() {
public void run() {
mHandler.post(mUpdateResults);
count = count + 1;
Log.v("test", count + "");
if (count > 3) {
finish();
Intent i = new Intent(MainActivity.this, HomeActivity.class);
startActivity(i);
count = 0;
timer.cancel();
}
}
}, 0, period);
}
/**
* Helper method to start the animation on the splash screen
*/
private void AnimateandSlideShow() {
slidingimage = (ImageView) findViewById(R.id.ImageView3_Left);
slidingimage.setImageResource(IMAGE_IDS[currentimageindex % IMAGE_IDS.length]);
currentimageindex++;
Animation rotateimage = AnimationUtils.loadAnimation(this, R.anim.custom_anim);
slidingimage.startAnimation(rotateimage);
}
}
来源:https://stackoverflow.com/questions/24405965/splash-screen-fade-animation-issue