google广告封装类

最近在接入google广告模块,封装了一个广告的Fragment供使用。
踢掉了不必要的XML配置文件,纯代码实现相关功能。


import android.app.Fragment;
import android.graphics.Color;
import android.os.Bundle;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewParent;
import android.widget.LinearLayout;
import android.widget.LinearLayout.LayoutParams;

import com.google.android.gms.ads.AdListener;
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdSize;
import com.google.android.gms.ads.AdView;

/**
*
* used for load google advertise.
*

*
* @author Administrator
*
*/
public class GoogleAdmobFragment extends Fragment {
private AdView mAdView;

private static final String ISOFFICIAL_FLAG = "is_official_flag";
private boolean isOfficialVersion = false;

public static final GoogleAdmobFragment newInstance(boolean bOfficial){
GoogleAdmobFragment fragment = new GoogleAdmobFragment();
Bundle bundle = new Bundle(2);
bundle.putBoolean(ISOFFICIAL_FLAG, bOfficial);
fragment.setArguments(bundle);
return fragment ;
}


@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}

@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
Bundle args = getArguments();
if (args != null) {
isOfficialVersion = args.getBoolean(ISOFFICIAL_FLAG);
}
// Gets the ad view defined in layout/ad_fragment.xml with ad unit ID
// set in values/strings.xml.
//mAdView = (AdView) getView().findViewById(R.id.adView);

// Create an ad request. Check logcat output for the hashed device ID to
// get test ads on a physical device. e.g.
// "Use AdRequest.Builder.addTestDevice("ABCDEF012345") to get test ads on this device."
AdRequest adRequest = null;
if(!isOfficialVersion){
adRequest = new AdRequest.Builder().addTestDevice(AdRequest.DEVICE_ID_EMULATOR).build();
}else{
//official release.
adRequest = new AdRequest.Builder().build();
}

mAdView.setAdListener(new AdListener() {
@Override
public void onAdFailedToLoad(int errorCode) {
try {
ViewParent pv = mAdView.getParent();
if (pv != null) {
pv = pv.getParent();
if (pv != null && pv instanceof View) {
((View) pv).setVisibility(View.GONE);
}
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
});
// Start loading the ad in the background.
mAdView.loadAd(adRequest);
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
LinearLayout adContainer = new LinearLayout(getActivity());
adContainer.setBackgroundColor(Color.BLACK);
adContainer.setGravity(Gravity.CENTER_HORIZONTAL);
mAdView = new AdView(getActivity());
mAdView.setAdSize(AdSize.BANNER);
String adUnitId = getResources().getString(R.string.banner_ad_unit_id);
mAdView.setAdUnitId(adUnitId);

// Place the ad view.
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
adContainer.addView(mAdView, params);
return adContainer;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值