本次迭代任务完成了开屏广告的接入,在此将本次工作中学到的知识以及遇到的问题做个小结,以便后期回顾。
首先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) {
}
};
}
关于app#启动页面#splash页面#开屏广告#的小结
最新推荐文章于 2024-05-26 09:51:03 发布