android 弹出框广告,弹框广告思路及实现

显示

显示的方式是显示一个全局的 AlertDialog ,这个里面也是有一些坑的

private void showAlertAdDialg(final AdvertisementResponse.Advertisement advertisement) {

final Dialog dialog = new Dialog(this, R.style.fullscreen_dialog);

View dialogView = LayoutInflater.from(this).inflate(R.layout.dialog_alert_ad, null, false);

View ivClose = dialogView.findViewById(R.id.iv_alert_ad_close);

ImageView ivOpenAd = (ImageView) dialogView.findViewById(R.id.iv_alert_ad_content);

if (!TextUtils.isEmpty(advertisement.getPictureUrl())) {

Glide.with(this)

.load(advertisement.getPictureUrl())

.into(ivOpenAd);

}

dialogView.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

dialog.dismiss();

}

});

ivClose.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

dialog.dismiss();

}

});

ivOpenAd.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

Intent intent = new Intent(mContext, ComWebActivity.class);

intent.putExtra(INTENT_KEY_HTML_TITLE, advertisement.getDetailTitle());

intent.putExtra(INTENT_KEY_HTML_URL, advertisement.getDetailUrl());

MainActivity.this.startActivity(intent);

}

});

dialog.setContentView(dialogView);

dialog.getWindow().setGravity(Gravity.CENTER);

dialog.setCanceledOnTouchOutside(true);

dialog.setCancelable(true);

WindowManager.LayoutParams lp = dialog.getWindow().getAttributes();

lp.width = WindowManager.LayoutParams.MATCH_PARENT;

lp.height = WindowManager.LayoutParams.MATCH_PARENT;

dialog.getWindow().setAttributes(lp);

dialog.show();

}

上面这段方法主要做了几件事情:

创建了一个全屏背景半透明的 Dialog,这个全屏主要是通过样式和设置 Dialog 的 WindowAttribute实现的

样式:

true

true

true

false

@android:color/transparent

true

设置为全屏大小:

WindowManager.LayoutParams lp = dialog.getWindow().getAttributes();

lp.width = WindowManager.LayoutParams.MATCH_PARENT;

lp.height = WindowManager.LayoutParams.MATCH_PARENT;

dialog.getWindow().setAttributes(lp);

加载布局,加载图片到 ImageView ,并设置到 Dialog 内

显示 Dialog

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值