软件编程
位置:首页>> 软件编程>> Android编程>> Android实现Window弹窗效果

Android实现Window弹窗效果

作者:科蒙@xiaomi  发布时间:2022-12-07 21:48:16 

标签:Android,Window,弹窗

本文实例为大家分享了Android实现Window弹窗效果的具体代码,供大家参考,具体内容如下

效果图

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

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com