关于app#启动页面#splash页面#开屏广告#的小结

本次迭代任务完成了开屏广告的接入,在此将本次工作中学到的知识以及遇到的问题做个小结,以便后期回顾。

首先splash页面即app启动的第一个activity,我们暂且命名为SplashActivity,其对应的布局文件为splash_activity。
我们放的开屏广告通常是一张图片。

布局文件如下:




    



由于每个应用启动时用户看见的第一眼是当前activity的主题颜色或主题中设置的图片,设置方法如下

            
                

                
            


android:theme="@style/gioneeLightThemeNoTitleAndFullScreen" >其中style如下:
    

设置背景后主题颜色为该图片,布局文件的背景也是该文件。

我们拿到一张广告图片后,只需要盖在背景图片上即可,我们请求的时候,只要两种尺寸的图片,一种是全屏幕的,一种是漏出
logo的图片,activity代码如下:

public class SplashActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.splash_activity);

        Log.i("jingcl", "500ms后出现广告-----1");
        mHandler.postDelayed(new Runnable() {
            @Override
            public void run() {
                ImageView adIv = (ImageView) findViewById(R.id.ad);
                adIv.setBackground(getResources().getDrawable(
                        R.drawable.ad_640800));
                runAnimator(adIv);
            }
        }, 500);
    }

    private void runAnimator(ImageView adIv) {
        Log.i("jingcl", "展示广告动画1s-----2");
        ObjectAnimator objectAnimator = ObjectAnimator.ofFloat(adIv, "alpha",
                0, 1).setDuration(1000);
        objectAnimator.setInterpolator(new AccelerateDecelerateInterpolator());
        objectAnimator.addListener(new AnimatorListenerAdapter() {
            @Override
            public void onAnimationEnd(Animator animation) {
                enterMainPage();
            }
        });
        objectAnimator.start();
    }

    private void enterMainPage() {
        Log.i("jingcl", "广告展示3s完毕进入主页-----3");
        mHandler.postDelayed(new Runnable() {
            @Override
            public void run() {
                Intent intent = new Intent();
                intent.setClass(getApplicationContext(), MainActivity.class);
                startActivity(intent);
                finish();
            }
        }, 3000);
    }

    private Handler mHandler = new Handler() {
        @Override
        public void handleMessage(Message msg) {
        }
    };
}











你可能感兴趣的:(Android)