Android弹窗

一。AlertDialog弹窗

这里我写了一个button按钮,触发点击事件出现弹窗,也可以不用点击方法,自定义触发

<Button
        android:id="@+id/btn_alert"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="出现弹框"/>

在这里插入图片描述

AlertDialog alertDialog = new AlertDialog.Builder(Activity_alert.this)
                        //标题
                        .setTitle("title")
                        //内容
                        .setMessage("message")
                        //图标
                        .setIcon(R.mipmap.ic_launcher)
                        .setPositiveButton("确认", null)
                        .create();
                alertDialog.show();

在这里插入图片描述

AlertDialog.Builder builder = new AlertDialog.Builder(Activity_alert.this);
                //图标
                builder.setIcon(R.mipmap.ic_launcher);
                //标题
                builder.setTitle("title");
                //提示
                builder.setMessage("message");
                //按钮
                builder.setPositiveButton("确认", null);
                builder.setNegativeButton("取消", null);
                builder.setNeutralButton("中性按钮", null);
                builder.setCancelable(true);
                AlertDialog dialog = builder.create();
                dialog.show();

二。PopupWindow 弹窗

在这里插入图片描述

自定义xml布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="200dp"
    android:layout_height="200dp"
    android:background="@color/gray"
    android:orientation="vertical">
    <TextView
        android:id="@+id/tv_alert"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="测试" />
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <Button
            android:id="@+id/btn_alert"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="确认" />
    </LinearLayout>
</LinearLayout>

PopupWindow popupWindow = new PopupWindow();
                popupWindow.setWidth(ViewGroup.LayoutParams.WRAP_CONTENT);
                popupWindow.setHeight(ViewGroup.LayoutParams.WRAP_CONTENT);
                popupWindow.setContentView(View.inflate(Activity_alert.this, R.layout.ppwindow, null));
                popupWindow.setBackgroundDrawable(new ColorDrawable(0x00000000));
                popupWindow.setFocusable(true);
                popupWindow.setOutsideTouchable(false);
                //动画样式
				//popupWindow.setAnimationStyle(R.style.anim_menu_bottombar);
				//设置位置
                popupWindow.showAsDropDown(v, 0, 0);
                

左右平移
在这里插入图片描述

popupWindow.showAsDropDown(v, 100, 0);

三。Dialog自定义弹窗
创建xml页面自定义
这里创建text.xml,根据自己的需要进行自定义即可

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">

    <TextView
    	android:id="@+id/one_txt"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="我是第一行"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="我是第二行"/>
    
</LinearLayout>

java文件进行调用


		//设置弹框
		Dialog dialog = new Dialog(getCurContext());
		//加入自定义的布局
		View view = View.inflate(getCurContext(), R.layout.goods_classify_window, null);
		//获取自定义布局里面的内容,进行操作
		TextView one_txt= view.findViewById(R.id.one_txt);
		one_txt.setText("第一行被我改变了");
		//加入自定义配置
		dialog.setContentView(view);
		//设置外部不可以被点击
		dialog.setCancelable(false);
		//显示弹框
		dialog.show();
		//操作位置宽高之类的
		Window window = dialog.getWindow();
		//设置弹出位置
		window.setGravity(Gravity.CENTER);
		//设置弹框大小
		window.setLayout(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
		//设置透明度
		window.setDimAmount(0.1f);

		
		//因为设置外部不可以被点击,这里使用定时方法,让其定时消失
	    final Timer timer = new Timer();
	      timer.schedule(new TimerTask() {
	          @Override
	          public void run() {
	              dialog.dismiss();
	          }
	      },3000);//单位为毫秒,所有三秒后弹框消失
  • 7
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值