项目中闪屏页动画的开发

闪屏页介绍

在应用中有动态的闪屏页,有静态的闪屏页,但归根结底其实是一个背景加一个图片设置一些动画制作的,现在我们一起看看这个闪屏页是怎么实现的吧。

获取布局控件的对象

RelativeLayout rl;
protected void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.activity_main);
     //初始化布局
     setView();
     //设置动画
     setAnim();
 }
private void setView() {
    rl=(RelativeLayout)findViewById(R.id.rl);
}

开始设置动画效果

这里我们使用在Activity界面中使用AnimationSet类实现,这个类里可以添加旋转、渐变和缩放等动画效果,然后交给View加载。
我们一起看看代码。

/**
* 创建动画
*/
private void setAnim() {
    AnimationSet  set=new AnimationSet(false);

        //旋转
        RotateAnimation roate = new RotateAnimation(0, 360, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
        roate.setDuration(3000);
        roate.setFillAfter(true);//保持动画状态

        //渐变
        AlphaAnimation alpha=new AlphaAnimation(0,1);
        alpha.setDuration(3000);//设置时长
        alpha.setFillAfter(true);//保持动画状态

        //缩放动画
        ScaleAnimation scale=new ScaleAnimation(0,1,0,1,Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f);
        scale.setDuration(3000);
        scale.setFillAfter(true);

        set.addAnimation(roate);
        set.addAnimation(alpha);
        set.addAnimation(alpha);
        //这里是动画的监听效果
        set.setAnimationListener(new Animation.AnimationListener() {
            @Override
            public void onAnimationStart(Animation animation) {

            }

            @Override
            public void onAnimationEnd(Animation animation) {
                Intent intent=new Intent(MainActivity.this,GuideActivity.class);
                startActivity(intent);
            }

            @Override
            public void onAnimationRepeat(Animation animation) {

            }
        });
        rl.setAnimation(set);

    }

创建RotateAnimation、ScaleAnimation和AlphaAnimation对象交给AnimationSet类设置对象就可以实现我们的闪屏页了,然后在它的监听方法结束的方法里,就可以跳转到我们的引导页或者主页了。

今天遇到一个异常,查找百度发现是.9.png的问题,android studio会验证.9图片的合法性,解决办法是删除.9图片或者默认不检查.9图片的合法性。

Error:java.util.concurrent.ExecutionException:com.android.ide.common.process.ProcessException:
Error:Execution failed for task':app:mergeDebugResources'.
>Error:java.util.concurrent.ExecutionException:com.android.ide.common.process.ProcessException:

猜你喜欢

转载自blog.csdn.net/qq_17336559/article/details/60885977