[英]Splash Screen Fade Animation issue
我完成了一個fade
動畫,在初始屏幕中顯示了three images
。
但是我有two issue
:
時間加載:
應用無法關閉:
進入應用程序后,我試圖在模擬器中使用后退按鈕關閉這些應用程序,但是它永遠不會關閉
應用。
它停留在應用程序本身中。在日志貓中,我看到1,2和3循環一次又一次地繼續。我無法關閉我的應用程序。
如果按主屏幕按鈕,它將顯示主屏幕,但再次自動進入應用程序。
LogCat:
我沒有收到任何logcat錯誤。但是您可以看到logcat讀數始終在運行。它永遠不會停止。循環1,2和3連續讀取logcat。對於這些來說,它永遠不會關閉應用程序。按鈕,將顯示主屏幕。但是有時它會自動進入這些應用程序。
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
下面,我發布了與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>
我不知道如何解決這些問題。如果您知道如何解決這些問題,任何人都可以幫助我。謝謝。
請參考此代碼段以解決您的問題。
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);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.