Android实现Window弹窗效果
作者:科蒙@xiaomi 发布时间:2022-12-07 21:48:16
标签:Android,Window,弹窗
本文实例为大家分享了Android实现Window弹窗效果的具体代码,供大家参考,具体内容如下
效果图
第一步 准备弹窗的布局,新建XML文件 photo_window
<?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:background="#FFFFFFFF"
android:orientation="vertical">
<TextView
android:id="@+id/photo"
android:layout_width="match_parent"
android:layout_height="50dp"
android:gravity="center"
android:text="拍摄"
android:textColor="@color/black"
android:textSize="16sp" />
<TextView
android:id="@+id/choose_picture"
android:layout_width="match_parent"
android:layout_height="50dp"
android:gravity="center"
android:text="相册选择"
android:textColor="@color/black"
android:textSize="16sp" />
<TextView
android:id="@+id/cancel"
android:layout_width="match_parent"
android:layout_height="50dp"
android:gravity="center"
android:text="取消"
android:textColor="@color/black"
android:textSize="16sp" />
</LinearLayout>
第二步 直接引用或者新建类,这里是新建类
public class ShowBottomDialog {
private View view;
private Dialog dialog;
private OnItemClick onItemClick;
public ShowBottomDialog(Context context) {
//1、使用Dialog、设置style
dialog = new Dialog(context, R.style.DialogTheme);
//2、设置布局
view = View.inflate(context, R.layout.photo_window, null);
dialog.setContentView(view);
Window window = dialog.getWindow();
//设置弹出位置
window.setGravity(Gravity.END);
//设置对话框大小
window.setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
/**
* 内部点击事件 写了一个 其他自写
dialog.findViewById(R.id.photo).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// Toast.makeText(context,"photo",Toast.LENGTH_SHORT).show();
// dialog.dismiss();
if(onItemClick!=null){
onItemClick.onItemClick(view);
}
}
});
**/
}
//展示
public void show(){
dialog.show();
}
//关闭
public void dismiss(){
dialog.dismiss();
}
public interface OnItemClick{
void onItemClick(View view);
}
public void setOnItemClickListener(OnItemClick onItemClickListener){
this.onItemClick=onItemClickListener;
}
}
第三步引用
ShowBottomDialog showBottomDialog=new ShowBottomDialog(this);
showBottomDialog.show();
/** showBottomDialog.setOnItemClickListener(new ShowBottomDialog.OnItemClick() {
@Override
public void onItemClick(View view) {
switch (view.getId()){
//do something
}
}
});**/
扩展
其他属性设置可以自己搜一下
来源:https://blog.csdn.net/weixin_46728351/article/details/116153535


猜你喜欢
- 在 Android 中倒计时功能是比较常用的一个功能,比如短信验证码,付款倒计时等。实现方式有Handler、Thread 等,但是实现起来
- 前言平时我们都有用到LeakCanary来分析内存泄露的情况,这里可以来看看LeakCanary是如何实现的,它的内部又有哪些比较有意思的操
- 前言先简单介绍下我们的使用场景,线上5台Broker节点的kafka承接了所有binlog订阅的数据,用于Flink组件接收数据做数据中台的
- 本文主要介绍了隐式Intent匹配目标组件的规则,若有叙述不清晰或是不准确的地方希望大家指出,谢谢大家: )1. Intent简
- 一、前言程序中经常会用到TabControl控件,默认的控件样式很普通。而且样式或功能不一定符合我们的要求。比如:我们需要TabContro
- 在学习monkeyrunner之前,让我们先搭建好eclipse安卓开发环境。对于程序开发人员而言,eclipse并不陌生,它提供了一个非常
- 1、什么是Spring MVC?Spring MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用
- 前言公众号上有网友询问我如何生成 EMF 文件的问题:本以为非常简单,我快速给出了解决方案:var bitmap = new Bitmap(
- 本文实例为大家分享了C#实现单位换算器的具体代码,供大家参考,具体内容如下一、阐述进制间转换:十六进制、十进制、八进制、二进制。长度间转换:
- 大家好,欢迎来到老胡的博客,今天我们继续了解设计模式中的职责链模式,这是一个比较简单的模式。跟往常一样,我们还是从一个真实世界的例子入手,这
- 项目描述:这是一个基于SpringBoot+Vue框架开发的仿小米电子产品售卖商城系统。首先,这是一个前后端分离的项目,代码简洁规范,注释说
- 初级技巧 - 乐观锁乐观锁适合这样的场景:读不会冲突,写会冲突。同时读的频率远大于写。以下面的代码为例,悲观锁的实现:public Obje
- 在编写ui界面时因为手机分辨率大小不同,所以展现出来的效果也是不同的,这个时候就需要考虑适配器,让根据手机分辨率自动适配相应尺寸来展示界面,
- 因为一直用spring整合了mybatis,所以很少用到mybatis的session缓存。 习惯是本地缓存自己用map写或者引入第三方的本
- 本文实例讲述了C#实现解压GZip文件的方法。分享给大家供大家参考。具体实现方法如下:public void ungzip(string p
- View绘制的三大流程,指的是measure(测量)、layout(布局)、draw(绘制) measure负责确定View的测量宽/高,也
- kotlin是一门基于jvm的编程语言,最近进行了关于kotlin和 anko的研究。并且结合现在的APP设计模式,设想了初步的开发方式。并
- 基于Android的五子棋的开发,供大家参考,具体内容如下需求分析1 棋盘和棋子绘制2 按照五子棋的规则制定游戏胜负规则 3 鼠标
- 一、概述 这一章先来点有意思的百度地图应用示例,然后再分章详细介绍用C#开发Android App的各种基本技术。 本章
- 抽象类什么是抽象类呢?在现实生活中,我们说“人类”,我们无法对应到具体某个人,同样的,&ld