Android实现Window弹窗效果
作者:科蒙@xiaomi 时间:2022-12-07 21:48:16
本文实例为大家分享了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,Window,弹窗
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
java生成json数据示例
2023-10-30 04:06:45
![](https://img.aspxhome.com/file/2023/9/64059_0s.jpg)
Java代码实现酒店管理系统
2023-08-13 13:09:23
![](https://img.aspxhome.com/file/2023/5/58095_0s.jpg)
SpringBoot定制三种错误页面及错误数据方法示例
2022-03-10 01:15:55
![](https://img.aspxhome.com/file/2023/7/61387_0s.png)
解决JAVA遍历List集合,删除数据时出现的问题
2021-12-25 15:38:03
Java实例讲解动态代理
2023-03-21 22:56:45
Android自定义View实现比赛时间闪动效果
2023-02-17 02:29:32
![](https://img.aspxhome.com/file/2023/3/94283_0s.gif)
Java Netty实现心跳机制过程解析
2023-05-24 21:27:10
Android实现在一个activity中添加多个listview的方法
2023-10-13 14:41:22
HashMap原理及put方法与get方法的调用过程
2023-10-06 03:53:02
![](https://img.aspxhome.com/file/2023/1/58601_0s.png)
实体类或对象序列化时,忽略为空属性的操作
2022-03-01 17:02:56
java 实现线程同步的方式有哪些
2023-01-13 01:26:14
Android 在 res/layout 文件夹 下创建一个 子文件夹实例
2021-07-31 22:50:21
![](https://img.aspxhome.com/file/2023/2/93332_0s.jpg)
Java IO流—异常及捕获异常处理 try…catch…finally
2023-03-14 07:35:52
![](https://img.aspxhome.com/file/2023/1/62401_0s.png)
Spring Boot集成Mybatis中如何显示日志的实现
2023-04-09 10:49:48
基于struts2和hibernate实现登录和注册功能
2022-03-23 00:27:43
![](https://img.aspxhome.com/file/2023/4/70984_0s.jpg)
WCF实现进程间管道通信Demo分享
2022-10-22 04:20:06
![](https://img.aspxhome.com/file/2023/4/108704_0s.jpg)
kotlin实现强制下线功能
2023-06-13 12:35:08
基于Spring整合mybatis的mapper生成过程
2022-01-11 03:49:26
![](https://img.aspxhome.com/file/2023/9/61129_0s.png)
关于springBoot yml文件的list读取问题总结(亲测)
2023-11-04 12:37:08
![](https://img.aspxhome.com/file/2023/3/67443_0s.png)
Android仿qq顶部消息栏效果
2021-10-28 13:52:57
![](https://img.aspxhome.com/file/2023/1/103901_0s.jpg)