zoukankan      html  css  js  c++  java
  • Android笔记之自定义PopupWindow

    效果图

    popup_window_addition.xml

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@mipmap/addition_popup_window_background"
        android:orientation="vertical"
        android:paddingLeft="20dp"
        android:paddingTop="15dp"
        android:paddingRight="15dp">
    
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="20dp"
            android:layout_marginBottom="15dp"
            android:drawableLeft="@mipmap/ic_chat"
            android:drawablePadding="15dp"
            android:gravity="center"
            android:text="发起群聊"
            android:textColor="@android:color/white" />
    
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="15dp"
            android:layout_marginBottom="15dp"
            android:drawableLeft="@mipmap/ic_add_friend"
            android:drawablePadding="15dp"
            android:gravity="center"
            android:text="添加朋友"
            android:textColor="@android:color/white" />
    
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="15dp"
            android:layout_marginBottom="15dp"
            android:drawableLeft="@mipmap/ic_scan"
            android:drawablePadding="15dp"
            android:gravity="center"
            android:text="扫一扫"
            android:textColor="@android:color/white" />
    
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="15dp"
            android:layout_marginBottom="15dp"
            android:drawableLeft="@mipmap/ic_receive_pay"
            android:drawablePadding="15dp"
            android:gravity="center"
            android:text="收付款"
            android:textColor="@android:color/white" />
    
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="15dp"
            android:layout_marginBottom="15dp"
            android:drawableLeft="@mipmap/ic_feedback"
            android:drawablePadding="15dp"
            android:gravity="center"
            android:text="帮助与反馈"
            android:textColor="@android:color/white" />
    </LinearLayout>

    AdditionPopupWindow.java

    package com.bu_ish.popup_window_example;
    
    import android.content.Context;
    import android.graphics.drawable.ColorDrawable;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.widget.LinearLayout;
    import android.widget.PopupWindow;
    
    public class AdditionPopupWindow extends PopupWindow {
        public AdditionPopupWindow(Context context) {
            setWidth(LinearLayout.LayoutParams.WRAP_CONTENT);
            setHeight(LinearLayout.LayoutParams.WRAP_CONTENT);
            setBackgroundDrawable(new ColorDrawable());
            setOutsideTouchable(true);
            View view = LayoutInflater.from(context).inflate(R.layout.popup_window_addition, null);
            setContentView(view);
        }
    }

    MainActivity.java

    package com.bu_ish.popup_window_example;
    
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.view.View;
    
    public class MainActivity extends AppCompatActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            findViewById(R.id.addImageView).setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    AdditionPopupWindow popupWindow = new AdditionPopupWindow(MainActivity.this);
                    popupWindow.showAsDropDown(v);
                }
            });
        }
    }

    注意

    要想点击外部关闭PopupWindow,必须调用setBackgroundDrawable(Drawable)和setOutsideTouchable(boolean)

    完整Demo链接:https://pan.baidu.com/s/1NF5-SUaOyHOWRWCFKfTWCA,提取码:c59o

  • 相关阅读:
    Struts2中Action取得表单数据的几种方法
    一次性插入多条记录快的不只一点点
    PHP规范PSR0和PSR4的理解
    mysql出现Too many connections的解决...
    浅谈Mysql 表设计规范(转)
    写单元测试的好处(转)
    TDD 与 BDD 仅仅是语言描述上的区别么?
    较好的方法命名规则(转)
    spring中InitializingBean接口使用理解(转)
    Maven:浅析依赖(dependency)关系中 scope 的含义(转)
  • 原文地址:https://www.cnblogs.com/buyishi/p/10457405.html
Copyright © 2011-2022 走看看