欢迎页面的三个动画
2016-03-10 20:24
399 查看
欢迎页面设置三个动画,旋转,缩放,渐变。然后直接进入另一个界面。就是三个viewPaper组成的。同是设置一个标记。利用sp存储,这样在下次进入程序时根据标记来判断是否进入,如果第一次已经进入,那么下次就可以直接跳过进入主页面。
闲话不说,直接代码。
public class SplashActivity extends Activity {
private static final String TAG = SplashActivity.class.getSimpleName();
public static final String START_MAIN_ACTIVITY = "start_mainActivity";
private RelativeLayout rl_splash_rootview;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash);
rl_splash_rootview = (RelativeLayout) findViewById(R.id.rl_splash_rootview);
//设置三个动画:缩放动画,旋转动画,渐变动画
ScaleAnimation sa = new ScaleAnimation(0, 1, 0, 1, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
sa.setDuration(2000);//设置播放时长
sa.setFillAfter(true);//设置停留在播放后的状态
RotateAnimation ra = new RotateAnimation(0, 360, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
ra.setDuration(2000);//设置播放时长
ra.setFillAfter(true);//设置停留在播放后的状态
AlphaAnimation aa = new AlphaAnimation(0, 1);
aa.setDuration(2000);
aa.setFillAfter(true);
//让三个动画同时播放,添加动画没有先后顺序
AnimationSet set = new AnimationSet(false);
set.addAnimation(sa);
set.addAnimation(ra);
set.addAnimation(aa);
rl_splash_rootview.startAnimation(set);
//监听动画播放完成?监听set的动画播放完成
set.setAnimationListener(new SplashAnimationListener());
}
class SplashAnimationListener implements Animation.AnimationListener {
/**
* 当动画开始播放的时候回调这个方法
*
* @param animation
*/
@Override
public void onAnimationStart(Animation animation) {
Log.e(TAG, "onAnimationStart-----");
}
/**
* 当动画播放完成的时候回调这个方法
*
* @param animation
*/
@Override
public void onAnimationEnd(Animation animation) {
//判断一下是否进入过引导页面;
//如果进入过了,并且点按钮了,就直接主页面,
//否则去引导页面
Intent intent;
boolean isStartMainActivityed = CacheUtils.getBoolean(SplashActivity.this, START_MAIN_ACTIVITY);
if (isStartMainActivityed) {
//直接进入主页面
intent = new Intent(SplashActivity.this, MainActivity.class);
} else {
intent = new Intent(SplashActivity.this, GuideActivty.class);
}
Log.e(TAG, "onAnimationEnd-----");
// Toast.makeText(getApplication(),"动画播放完成",Toast.LENGTH_SHORT).show();
startActivity(intent);
finish();
}
/**
* 当动画重复播放的时候回调这个方法
*
* @param animation
*/
@Override
public void onAnimationRepeat(Animation animation) {
Log.e(TAG, "onAnimationRepeat-----");
}
}
}
xml文件就一个imageview需要添加。
<ImageView
android:layout_centerInParent="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/splash_sheep_newyear" />
闲话不说,直接代码。
public class SplashActivity extends Activity {
private static final String TAG = SplashActivity.class.getSimpleName();
public static final String START_MAIN_ACTIVITY = "start_mainActivity";
private RelativeLayout rl_splash_rootview;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash);
rl_splash_rootview = (RelativeLayout) findViewById(R.id.rl_splash_rootview);
//设置三个动画:缩放动画,旋转动画,渐变动画
ScaleAnimation sa = new ScaleAnimation(0, 1, 0, 1, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
sa.setDuration(2000);//设置播放时长
sa.setFillAfter(true);//设置停留在播放后的状态
RotateAnimation ra = new RotateAnimation(0, 360, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
ra.setDuration(2000);//设置播放时长
ra.setFillAfter(true);//设置停留在播放后的状态
AlphaAnimation aa = new AlphaAnimation(0, 1);
aa.setDuration(2000);
aa.setFillAfter(true);
//让三个动画同时播放,添加动画没有先后顺序
AnimationSet set = new AnimationSet(false);
set.addAnimation(sa);
set.addAnimation(ra);
set.addAnimation(aa);
rl_splash_rootview.startAnimation(set);
//监听动画播放完成?监听set的动画播放完成
set.setAnimationListener(new SplashAnimationListener());
}
class SplashAnimationListener implements Animation.AnimationListener {
/**
* 当动画开始播放的时候回调这个方法
*
* @param animation
*/
@Override
public void onAnimationStart(Animation animation) {
Log.e(TAG, "onAnimationStart-----");
}
/**
* 当动画播放完成的时候回调这个方法
*
* @param animation
*/
@Override
public void onAnimationEnd(Animation animation) {
//判断一下是否进入过引导页面;
//如果进入过了,并且点按钮了,就直接主页面,
//否则去引导页面
Intent intent;
boolean isStartMainActivityed = CacheUtils.getBoolean(SplashActivity.this, START_MAIN_ACTIVITY);
if (isStartMainActivityed) {
//直接进入主页面
intent = new Intent(SplashActivity.this, MainActivity.class);
} else {
intent = new Intent(SplashActivity.this, GuideActivty.class);
}
Log.e(TAG, "onAnimationEnd-----");
// Toast.makeText(getApplication(),"动画播放完成",Toast.LENGTH_SHORT).show();
startActivity(intent);
finish();
}
/**
* 当动画重复播放的时候回调这个方法
*
* @param animation
*/
@Override
public void onAnimationRepeat(Animation animation) {
Log.e(TAG, "onAnimationRepeat-----");
}
}
}
xml文件就一个imageview需要添加。
<ImageView
android:layout_centerInParent="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/splash_sheep_newyear" />
相关文章推荐
- Gifski:一个跨平台的高质量 GIF 编码器
- 模仿动画的放大缩小容器
- jQuery 1.9.1源码分析系列(十五)动画处理之缓动动画核心Tween
- Android实现定制返回按钮动画效果的方法
- Android中ViewFlipper的使用及设置动画效果实例详解
- jQuery实现美观的多级动画效果菜单代码
- php结合安卓客户端实现查询交互实例
- php判断GIF图片是否为动画的方法
- jQuery实现动画效果circle实例
- HTML5游戏引擎LTweenLite实现的超帅动画效果(附demo源码下载)
- 浅析JavaScript动画
- js排序动画模拟-插入排序
- javascript+HTML5的Canvas实现Lab单车动画效果
- 基于javascript实现漂亮的页面过渡动画效果附源码下载
- js实现按钮颜色渐变动画效果
- 超赞的jQuery图片滑块动画特效代码汇总
- jQuery实现连续动画效果实例分析
- jQuery实现的给图片点赞+1动画效果(附在线演示及demo源码下载)
- jQuery实现带有洗牌效果的动画分页实例
- jQuery动画效果相关方法实例分析