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

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

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

布局文件如下:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/fl_whole"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <ImageView
        android:id="@+id/ad"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="top" />

</RelativeLayout>

由于每个应用启动时用户看见的第一眼是当前activity的主题颜色或主题中设置的图片,设置方法如下
<pre name="code" class="html">
<activity
            android:name="com.erliang.splash.ad.SplashActivity"
            android:label="@string/app_name"
            android:theme="@style/gioneeLightThemeNoTitleAndFullScreen" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
</activity>

<pre name="code" class="html">android:theme="@style/gioneeLightThemeNoTitleAndFullScreen" >其中style如下:
<pre name="code" class="html">    <style name="gioneeLightThemeNoTitleAndFullScreen" 
                 parent="android:Theme.Light.NoTitleBar.Fullscreen">
        <item name="android:windowBackground">@drawable/default_splesh</item>//设置背景图片
        <item name="android:windowTranslucentStatus">true</item>
    </style>

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

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

<pre name="code" class="html"><pre name="code" class="java">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) {
        }
    };
}











  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值