坚持学习每一天
爱生活,爱分享
如果您喜欢我的文章,可以点击关注,喜欢
某些APP上广告弹窗效果是这样的,
anli.jpg,自己看了一下结合以前的弹窗代码自己也写了个简单的DEMO。
先看最终效果
2.png弹窗大致相同,里面的布局和点击事件各种回调可以自己写,各种特效也可以自己加,先来实现弹窗。
第一步:新建一个项目
Freedialog
第二步:设置弹窗属性
<style name="dialog" parent="@android:style/Theme.Dialog">
<!--去掉边框-->
<item name="android:windowFrame">@null</item>
<!--悬浮-->
<item name="android:windowIsFloating">true</item>
<!--半透明-->
<item name="android:windowIsTranslucent">false</item>
<!--不需要标题-->
<item name="android:windowNoTitle">true</item>
<!--背景透明-->
<item name="android:windowBackground">@android:color/transparent</item>
<!--允许模糊-->
<item name="android:backgroundDimEnabled">true</item>
<!--全屏幕-->
<item name="android:windowFullscreen">true</item>
</style>
第三步:新建弹窗布局,在Activity里面创建Dialog加载布局
//此为DEMO可自己进行封装,需要各种回调的自己加接口
private void show_Dialog()
{
//创建兼容包dialog
final AppCompatDialog dialog=new AppCompatDialog(MainActivity.this,R.style.dialog);
//设置布局
dialog.setContentView(R.layout.dialog_full);
//设置宽高
int devicewidth=DimenUtil.getScreenWidth(MainActivity.this);
int deviceheight=DimenUtil.getScreenHeight(MainActivity.this);
Window dialogWindow=dialog.getWindow();
WindowManager.LayoutParams lp=dialogWindow.getAttributes();
if(dialog!=null){
lp.width=devicewidth;
lp.height=deviceheight;
lp.gravity= Gravity.CENTER;
}
dialog.show();
AppCompatButton button=dialogWindow.findViewById(R.id.btn);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dialog.dismiss();
}
});
}
简单的布局
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
android:layout_width="match_parent"
android:gravity="center"
android:layout_height="match_parent">
<android.support.v7.widget.AppCompatImageView
android:scaleType="fitXY"
android:layout_centerHorizontal="true"
android:id="@+id/ad"
android:src="@mipmap/ad"
android:layout_width="200dp"
android:layout_height="200dp" />
<android.support.v7.widget.AppCompatButton
android:layout_marginTop="24dp"
android:layout_centerHorizontal="true"
android:layout_below="@+id/ad"
android:id="@+id/btn"
android:text="关闭"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</RelativeLayout>