首页 > 其他分享 >Android自定义弹窗

Android自定义弹窗

时间:2023-07-21 13:55:32浏览次数:30  
标签:AlertDialogImg 自定义 img private import Android android 弹窗

继承android.app.AlertDialog

package com.jay.component;

import android.content.Context;
import android.graphics.Bitmap;
import android.util.Log;
import android.view.View;
import android.view.Window;
import android.widget.Button;
import android.widget.ImageView;

import com.jay.myappstudy.R;

/**
 * 弹窗显示图片
 * */
public class AlertDialogImg extends android.app.AlertDialog {
    private Context context;
    private ImageView mImgView;
    // 图片
    private Bitmap mImg;
    // 底部按钮
    private Button btn1;
    // 当前 AlertDialogImg 实例
    private AlertDialogImg This = null;
    // 传入自定义按钮事件
    private OnClickListener mPositiveOnClick;

    public AlertDialogImg(Context context, Bitmap img) {
        super(context);
        OnCreate(context, img);
    }

    private void OnCreate(Context context, Bitmap img) {
        try {
            This = this;
            this.context = context;
            this.setCanceledOnTouchOutside(true);// 点击空白处关闭弹窗
            mImg = img;
            This.show();// 显示弹窗
            Window window = This.getWindow();// 获取窗口对象
            window.setContentView(R.layout.alert_dialog_img);// 加载布局文件
            mImgView = (ImageView) window.findViewById(R.id.img);// 获取布局文件中的控件
            if (mImgView != null) {
                mImgView.setImageBitmap(mImg);// 设置控件
            }
            btn1 = (Button) window.findViewById(R.id.btn1);// 获取按钮
            // 按钮点击事件
            btn1.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    // 自定义按钮事件
                    if (mPositiveOnClick != null) {
                        mPositiveOnClick.onClick(This, 0);
                    }
                    // 关闭弹窗
                    This.dismiss();
                }
            });
        } catch (Exception ex) {
            Log.i("AlertDialogImg", "弹窗异常", ex);
            System.out.println(ex.getMessage());
        }
    }
    // 弹窗对象实例调用,可修改图片。
    public void setImg(Bitmap img) {
        mImgView.setImageBitmap(img);
    }

    // 弹窗对象实例调用,可修改图片。
    public void setPositiveButton(String text, final OnClickListener listener) {
        mPositiveOnClick = listener;
        btn1.setText(text);
    }
}

使用

// 生成二维码
Bitmap qrCode = QRCodeUtils.createQRCode("http://www.baidu.com", 200);
// 弹窗,一定要传Activity,弹窗是要基于Activity的。
AlertDialogImg dlg = new AlertDialogImg(currentActivity, qrCode);
// 设置弹窗底部按钮和点击事件,自定义继承View.OnClickListener
dlg.setPositiveButton("确定", null);

参考:https://blog.csdn.net/willba/article/details/92613902
https://zhuanlan.zhihu.com/p/619213902?utm_id=0

标签:AlertDialogImg,自定义,img,private,import,Android,android,弹窗
From: https://www.cnblogs.com/xsj1989/p/17571089.html

相关文章

  • Android生成二维码
    引入jar包链接:https://pan.baidu.com/s/15bWmBGHR6InqQG_Hi6Ab7A提取码:1234utilspackagecom.jay.common;importandroid.graphics.Bitmap;importandroid.graphics.Color;importcom.google.zxing.BarcodeFormat;importcom.google.zxing.EncodeHintType;importcom.......
  • 我的搜索 | 订阅式/自定义内容搜索
    我的搜索是一个可自定义内容搜索的脚本应用,比如你收集了很多的网站、软件,想要快速检索它,这也是这个脚本应用的初心!1、基本使用1、首先需要安装浏览器油猴插件。2、安装我们的脚本:我的搜索3、使用,随便打开一个网页,按Ctrl+Alt+S,呼出搜索框(有内置数据可搜索) 未写完.........
  • java根据ConcurrentHashMap自定义本地缓存
    packagecom.sxsoft.config;importjava.util.Map;importjava.util.concurrent.ConcurrentHashMap;importcom.istrong.ec.common.utils.StringUtils;importorg.springframework.context.annotation.Configuration;importorg.springframework.scheduling.annotation.......
  • 使用本地iconfont 网页显示Android不显示
    使用本地iconfont网页显示Android不显示的解决方法1.流程概述下面是解决"使用本地iconfont网页显示Android不显示"的整个流程。可以使用以下表格展示步骤:步骤描述1引入iconfont资源文件2在HTML文件中引入iconfontCSS样式3设置文本的字体样式为iconfont......
  • Android settings开发
    AndroidSettings开发介绍在Android应用开发过程中,我们经常需要让用户在设置页面中进行一些个性化的配置。Android提供了一个SettingsAPI,使得开发者可以轻松地创建和管理应用的设置界面。本文将介绍如何使用Android的SettingsAPI来开发设置页面,并提供相关的代码示例。创建设置......
  • Android opensv 检测画面变化
    AndroidOpenCV检测画面变化介绍在Android开发中,我们经常会面临处理图像和视频的需求。而对于图像处理中的一个重要任务就是检测图像的变化。OpenCV是一个强大的图像处理库,它提供了丰富的功能和算法,可以帮助我们实现各种图像处理任务。本文将介绍如何使用AndroidOpenCV来检测......
  • Android gradle插件下载后存放在哪里
    AndroidGradle插件下载存放位置引言在Android开发中,Gradle是一个非常重要的构建工具,用于构建、编译和管理项目。AndroidGradle插件是Gradle的一个扩展,用于提供特定于Android项目的功能和能力。在进行Android开发时,我们通常需要在项目中引入不同版本的Gradle插件。本文将向你介......
  • Android opencv Mat 创建单位矩阵
    AndroidOpenCVMat创建单位矩阵在计算机视觉和图像处理中,矩阵是一个非常重要的概念。矩阵可以表示图像的像素值、进行图像变换、计算特征向量和特征值等。Android平台上,OpenCV是一个强大的图像处理库,提供了许多矩阵操作的函数和工具。本文将介绍如何使用OpenCV在Android上创建单......
  • Android apk瘦身
    AndroidAPK瘦身指南作为一名经验丰富的开发者,我将帮助你学习如何实现"AndroidAPK瘦身"。在本文中,我将介绍整个流程,并提供每一步所需的代码示例和解释。瘦身流程下面是实现APK瘦身的基本步骤,可以用表格展示:步骤描述1.压缩资源文件压缩APK中的资源文件以减少文件大......
  • Android mars
    AndroidMars科普![AndroidMars](AndroidMars是Android操作系统的一个版本。它是继AndroidLollipop(Android5.0)之后的一个重要版本。在本文中,我们将深入探讨AndroidMars的一些亮点功能和代码示例。1.更快的性能AndroidMars引入了一些性能优化和改进,以提高设备的响应速度......