配色: 字号:
OPO项目组--京东手机APP项目开发
2015-01-13 | 阅:  转:  |  分享 
  
京东APP手机客户端项目开发

项目工程创建



欢迎界面搭建

欢迎界面Activity创建



说明:

SplashActivity,它是整个APP启动的欢迎界面。相当于是一个引导界面,会有一定的动画效果。

MainActivity,相应于整个APP主窗口界面。此主窗口界面会通过SplashActivity引导来加载

AndroidManifest.xml文件代码




package="com.gxaedu.ui"

android:versionCode="1"

android:versionName="1.0">




android:minSdkVersion="14"

android:targetSdkVersion="17"/>




android:allowBackup="true"

android:icon="@drawable/ic_launcher"

android:label="@string/app_name"

android:theme="@style/AppTheme">


android:name="com.gxaedu.ui.SplashActivity"

android:label="@string/app_name"

android:theme="@android:style/Theme.NoTitleBar.Fullscreen">

















欢迎界面的布局文件创建



splash.xml文件是整个欢迎界面的布局文件,参考代码如下:




android:layout_width="match_parent"

android:layout_height="match_parent"

android:background="@drawable/splash_bg">




android:id="@+id/splash_logo"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_centerHorizontal="true"

android:layout_marginTop="120dp"

android:background="@drawable/splash_logo"/>




android:id="@+id/relativeLayout1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_below="@id/splash_logo"

android:layout_centerHorizontal="true"

android:layout_marginTop="50dp">




android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_centerInParent="true"

android:background="@drawable/splash_loading_bg"/>




android:id="@+id/splash_loading_item"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignParentLeft="true"

android:background="@drawable/splash_loading_item"/>









欢迎界面的图片资源加载



图片资源的加载会对应上面的splash.xml布局文件。根据上面的步骤运行测试效果图



欢迎界面动画效果实现

先告知大家一下,欢迎界面加载后会有一个进度条动画加载效果,当进度条加载完毕后会引导进行下一个MainActivity主窗口界面

Animation类介绍

在Android整个UI界面动画效果设计上提供一个套非常好的API,它可以实现旋转、缩放、淡入淡出等效果。

Android中的动画分类

TweenedAnimation:它提供旋转、移动、伸展、淡出等效果。Alpha代表淡出,Scale代表缩放,Rotate代表旋转,Translate代表移动

FrameAnimation:它可以创建Drawable序列,这些Drawable可以按照指定的时间间歇一个一个的显示。类似gif图片原理

注意:而这次我们设计京东APP欢迎界面就会用到Animation中移动效果(Translate)

如何实现Translate移动效果

这里采取利用配置xml文件来完成Translate的动画效果定义。在res目录下加载一个anim文件夹,这个文件夹就用来定义整个APP的动画



splash_loading.xml文件代码




android:duration="1000"//加载动画时间

android:fromXDelta="0.0"//始于X坐标

android:interpolator="@android:anim/accelerate_decelerate_interpolator"

android:toXDelta="60%p"//终于X坐标

android:fillAfter="true"/> Translate移动效果实例化

packagecom.gxaedu.ui;



importandroid.app.Activity;

importandroid.os.Bundle;

importandroid.view.animation.Animation;

importandroid.view.animation.AnimationUtils;

importandroid.widget.ImageView;



publicclassSplashActivityextendsActivity{



privateImageViewiv_splash=null;



@Override

protectedvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.splash);

iv_splash=(ImageView)findViewById(R.id.splash_loading_item);

Animationtranslate=AnimationUtils.loadAnimation(this,R.anim.splash_loading);

iv_splash.setAnimation(translate);

}



}

欢迎界面切换到主界面

从欢迎界面切换到主界面,我们需要先实现欢迎界面的动画监听事件,等待动画完成后调用startActivity进行两个Activity的切换。

Translate动画事件监听

动画事件的监听方法setAnimationListener,其中实现AnimationListener监听接口,且此接口中的方法如下:

onAnimationStart:当动画开始加载的时候运行此方法

onAnimationRepeat:当动画重复性的执行时候运行此方法

onAnimationEnd:当动画执行结束的时候运行此方法

packagecom.gxaedu.ui;



importandroid.app.Activity;

importandroid.content.Intent;

importandroid.os.Bundle;

importandroid.view.animation.Animation;

importandroid.view.animation.AnimationUtils;

importandroid.widget.ImageView;



publicclassSplashActivityextendsActivity{



privateImageViewiv_splash=null;



@Override

protectedvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.splash);

iv_splash=(ImageView)findViewById(R.id.splash_loading_item);

Animationtranslate=AnimationUtils.loadAnimation(this,R.anim.splash_loading);

translate.setAnimationListener(newAnimation.AnimationListener(){//实现translate动画监听事件



@Override

publicvoidonAnimationStart(Animationanimation){



}



@Override

publicvoidonAnimationRepeat(Animationanimation){



}



@Override

publicvoidonAnimationEnd(Animationanimation){//动画结束后加载MainActivity

Intentintent=newIntent(SplashActivity.this,MainActivity.class);

startActivity(intent);

SplashActivity.this.finish();

}

});

iv_splash.setAnimation(translate);//设置图片的动画效果

}



}

献花(0)
+1
(本文系小飞飞飞上...首藏)