欢迎界面(Splash)是应用呈现给用户的第一个界面,一般来讲,我们会给欢迎界面加上一个动画效果,从而给用户一个较好的第一印象。而欢迎界面通常不会放太多的view,一般只有一个背景(background),或者放一个广告,下面我们就来看一下欢迎界面的动画效果的简单实现。
首先,新建一个android项目,在src包下新建一个android activity,我们给它取名叫SplashActivity,然后在AndroidManifest.xml文件(清单配置文件)将启动activity设置成SplashActivity。如下所示:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.musicplayer"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="17"
android:targetSdkVersion="17" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.musicplayer.view.MainActivity"
android:label="@string/app_name" >
</activity>
<activity
android:name="com.example.musicplayer.view.SplashActivity"
android:label="@string/title_activity_splash" >
**<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>**
</activity>
</application>
</manifest>
我们只需要将MainActivity(当然,在新建android项目时你可能改了MainActivity的名字)的<intent-filter></intent-filter>标签给移到SplashActivity名下即可。这样,启动Activity就变成了SplashActivity。然后,我们修改activity-splash.xml文件,给它加一个background,并且给它的根布局一个id。如下:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
**android:id="@+id/rl_splashactivity_container"**
android:layout_width="match_parent"
android:layout_height="match_parent"
**android:background="@drawable/splash"**
tools:context=".SplashActivity" >
</RelativeLayout>
然后,我们可以新建一个补间动画的xml的set文件。即,在res目录下新建一个Android XML File,在Resource Type选择Tween Animation,在下面的Root Element选择set,并在File选项给它取名,然后点击finish。在这里,我给它取名叫做splash_animation_set_01。然后,在里面添加代码。如下:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
<alpha
android:duration="2000"
android:fromAlpha="0"
android:toAlpha="1" />
<scale
android:duration="2000"
android:fromXScale="0"
android:fromYScale="0"
android:pivotX="50%"
android:pivotY="50%"
android:toXScale="1"
android:toYScale="1" />
</set>
在这里,我只给它添加了一个淡入淡出效果和缩放效果,然后,我们回到SplashActivity.java文件,完成代码。
public class SplashActivity extends Activity {
RelativeLayout animContainer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash);
initView();
initAnim();
}
private void initView() {
animContainer = (RelativeLayout) findViewById(R.id.rl_splashactivity_container);
}
private void initAnim() {
Animation anim = AnimationUtils.loadAnimation(this, R.anim.splash_animation_set_01);
animContainer.setAnimation(anim);
anim.setAnimationListener(new AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
}
@Override
public void onAnimationRepeat(Animation animation) {
}
@Override
public void onAnimationEnd(Animation animation) {
Intent intent = new Intent(SplashActivity.this, MainActivity.class);
startActivity(intent);
SplashActivity.this.finish();
}
});
}
}
这样,我们就完成了Splash界面的动画效果的简单实现,快去试一下吧!!!