1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 欢迎界面动画效果的简单实现

欢迎界面动画效果的简单实现

时间:2024-03-04 02:51:37

相关推荐

欢迎界面动画效果的简单实现

欢迎界面(Splash)是应用呈现给用户的第一个界面,一般来讲,我们会给欢迎界面加上一个动画效果,从而给用户一个较好的第一印象。而欢迎界面通常不会放太多的view,一般只有一个背景(background),或者放一个广告,下面我们就来看一下欢迎界面的动画效果的简单实现。首先,新建一个android项目,在src包下新建一个android activity,我们给它取名叫SplashActivity,然后在AndroidManifest.xml文件(清单配置文件)将启动activity设置成SplashActivity。如下所示:

<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="/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="/apk/res/android"xmlns:tools="/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="/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;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_splash);initView();initAnim();}private void initView() {//这就是我们要给activity-splash的根布局添加id的原因//我们首先得到这个Relative布局animContainer = (RelativeLayout) findViewById(R.id.rl_splashactivity_container);}private void initAnim() {//然后,我们定义一个动画,这个动画就是我们自己写的那个动画了Animation anim = AnimationUtils.loadAnimation(this, R.anim.splash_animation_set_01);//将根布局RelativeLayout与动画进行绑定animContainer.setAnimation(anim);//由于我们给动画设置了2秒的时长,因此不能直接使用Intent来启动MainActivity,而是要给动画加上监听,在动画完成时在使用Intent。anim.setAnimationListener(new AnimationListener() {@Overridepublic void onAnimationStart(Animation animation) {// TODO Auto-generated method stub}@Overridepublic void onAnimationRepeat(Animation animation) {// TODO Auto-generated method stub}@Overridepublic void onAnimationEnd(Animation animation) {//动画完成,我们使用Intent来启动MainActivity,并且将SplashActivity给finish掉,这样我们在MainActivity点击back键就不会回到Splash界面了,因为我们只需要显示一次Splash界面。Intent intent = new Intent(SplashActivity.this, MainActivity.class);startActivity(intent);SplashActivity.this.finish();}});}}

这样,我们就完成了Splash界面的动画效果的简单实现,快去试一下吧!!!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。