Android开发实现popupWindow弹出窗口自定义布局与位置控制方法

作者:ITzhongzi 时间:2022-10-13 11:42:09 

本文实例讲述了Android开发实现popupWindow弹出窗口自定义布局与位置控制方法。分享给大家供大家参考,具体如下:

布局文件:

主布局文件:activity_main:


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:tools="http://schemas.android.com/tools"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 tools:context="com.example.bige.MainActivity"
 android:orientation="vertical">
 <LinearLayout
   android:layout_marginTop="10dp"
   android:layout_marginLeft="10dp"
   android:layout_marginRight="10dp"
   android:orientation="vertical"
   android:layout_width="match_parent"
   android:layout_height="wrap_content">
 <LinearLayout
   android:orientation="horizontal"
   android:layout_width="match_parent"
   android:layout_height="wrap_content">
   <Button
     android:textSize="20dp"
     android:paddingTop="10dp"
     android:gravity="left"
     android:layout_width="0dp"
     android:layout_height="match_parent"
     android:layout_weight="3"
     android:text="富乃宝山"
     android:background="#AAAAAA"/>
   <Button
     android:layout_marginRight="5dp"
     android:layout_marginLeft="5dp"
     android:background="#AAAAAA"
     android:layout_width="0dp"
     android:layout_height="wrap_content"
     android:layout_weight="1"
     android:text="0点"/>
   <Button
     android:id="@+id/num1"
     android:layout_width="0dp"
     android:layout_height="wrap_content"
     android:layout_weight="1"
     android:textColor="@android:color/white"
     android:background="#000000"
     android:text="1"/>
 </LinearLayout>
 <LinearLayout
   android:layout_marginTop="10dp"
   android:layout_width="match_parent"
   android:layout_height="wrap_content">
   <Button
     android:layout_width="0dp"
     android:layout_height="wrap_content"
     android:layout_weight="1"
     android:text="ビール"
     android:background="#A4A4A4"
     android:layout_marginRight="3dp"/>
   <Button
     android:layout_width="0dp"
     android:layout_height="wrap_content"
     android:layout_weight="1"
     android:text="FD"
     android:background="#A4A4A4"
     android:layout_marginRight="3dp"
     />
   <Button
     android:layout_marginLeft="3dp"
     android:layout_marginRight="3dp"
     android:layout_width="0dp"
     android:layout_height="wrap_content"
     android:layout_weight="1"
     android:text="焼酎"
     android:background="#6FA5DB"/>
   <Button
     android:layout_width="0dp"
     android:layout_height="wrap_content"
     android:layout_weight="1"
     android:text="日本酒"
     android:background="#A4A4A4"/>
 </LinearLayout>
 <LinearLayout
   android:layout_marginTop="2dp"
   android:layout_width="match_parent"
   android:layout_height="wrap_content">
   <Button
     android:layout_width="0dp"
     android:layout_height="wrap_content"
     android:layout_weight="1"
     android:text="ソフト "
     android:background="#A4A4A4"
     android:layout_marginRight="3dp"/>
   <Button
     android:layout_width="0dp"
     android:layout_height="wrap_content"
     android:layout_weight="1"
     android:text="サワー "
     android:background="#A4A4A4"
     android:layout_marginRight="3dp"
     />
   <Button
     android:layout_marginLeft="3dp"
     android:layout_marginRight="3dp"
     android:layout_width="0dp"
     android:layout_height="wrap_content"
     android:layout_weight="1"
     android:text="カクテル "
     android:background="#A4A4A4"/>
   <Button
     android:layout_width="0dp"
     android:layout_height="wrap_content"
     android:layout_weight="1"
     android:text="ワイン "
     android:background="#A4A4A4"/>
 </LinearLayout>
 <LinearLayout
   android:layout_marginTop="2dp"
   android:layout_width="match_parent"
   android:layout_height="wrap_content">
   <Button
     android:layout_width="0dp"
     android:layout_height="wrap_content"
     android:layout_weight="1"
     android:text="果実酒 "
     android:background="#A4A4A4"
     android:layout_marginRight="3dp"/>
   <Button
     android:layout_width="0dp"
     android:layout_height="wrap_content"
     android:layout_weight="1"
     android:text="ウイスキー "
     android:background="#A4A4A4"
     android:layout_marginRight="3dp"
     />
   <Button
     android:layout_marginLeft="3dp"
     android:layout_marginRight="3dp"
     android:layout_width="0dp"
     android:layout_height="wrap_content"
     android:layout_weight="1"
     android:background="#A4A4A4"/>
   <Button
     android:layout_width="0dp"
     android:layout_height="wrap_content"
     android:layout_weight="1"
     android:background="#A4A4A4"/>
 </LinearLayout>
 <LinearLayout
   android:layout_marginTop="2dp"
   android:layout_width="match_parent"
   android:layout_height="wrap_content">
   <Button
     android:layout_width="0dp"
     android:layout_height="wrap_content"
     android:layout_weight="1"
     android:text="会席進行 "
     android:background="#A4A4A4"
     android:layout_marginRight="3dp"/>
   <Button
     android:layout_width="0dp"
     android:layout_height="wrap_content"
     android:layout_weight="1"
     android:text="パック進行 "
     android:background="#A4A4A4"
     android:layout_marginRight="3dp"
     />
   <Button
     android:layout_marginLeft="3dp"
     android:layout_marginRight="3dp"
     android:layout_width="0dp"
     android:layout_height="wrap_content"
     android:layout_weight="1"
     android:text="単品 "
     android:background="#A4A4A4"/>
   <Button
     android:layout_width="0dp"
     android:layout_height="wrap_content"
     android:layout_weight="1"
     android:background="#A4A4A4"/>
 </LinearLayout>
 <LinearLayout
   android:orientation="horizontal"
   android:layout_marginTop="2dp"
   android:layout_width="match_parent"
   android:layout_height="wrap_content">
   <Button
     android:layout_width="0dp"
     android:layout_height="wrap_content"
     android:layout_weight="1"
     android:text="ソフト "
     android:background="#A4A4A4"
     android:layout_marginRight="3dp"/>
   <Button
     android:layout_width="0dp"
     android:layout_height="wrap_content"
     android:layout_weight="1"
     android:text="サワー "
     android:background="#A4A4A4"
     android:layout_marginRight="3dp"
     />
   <Button
     android:layout_marginLeft="3dp"
     android:layout_marginRight="3dp"
     android:layout_width="0dp"
     android:layout_height="wrap_content"
     android:layout_weight="1"
     android:text="カクテル "
     android:background="#A4A4A4"/>
   <Button
     android:layout_width="0dp"
     android:layout_height="wrap_content"
     android:layout_weight="1"
     android:text="ワイン "
     android:background="#A4A4A4"/>
 </LinearLayout>
 <LinearLayout
   android:layout_marginTop="10dp"
   android:layout_width="match_parent"
   android:layout_height="wrap_content">
   <Button
     android:layout_marginRight="3dp"
     android:layout_width="0dp"
     android:layout_height="wrap_content"
     android:layout_weight="1"
     android:background="#A4A4A4"
     android:text="ロック " />
   <Button
     android:layout_marginRight="3dp"
     android:layout_width="0dp"
     android:layout_height="wrap_content"
     android:layout_weight="1"
     android:background="#A4A4A4"
     android:text="水割り " />
   <Button
     android:layout_marginRight="3dp"
     android:layout_marginLeft="3dp"
     android:layout_width="0dp"
     android:layout_height="wrap_content"
     android:layout_weight="1"
     android:background="#A4A4A4"
     android:text="お湯割り " />
   <Button
     android:layout_width="0dp"
     android:layout_height="wrap_content"
     android:layout_weight="1"
     android:background="#A4A4A4"
     android:text="ソーダ割 " />
 </LinearLayout>
 <LinearLayout
   android:layout_marginTop="3dp"
   android:layout_width="match_parent"
   android:layout_height="wrap_content">
   <Button
     android:layout_marginRight="3dp"
     android:layout_width="0dp"
     android:layout_height="wrap_content"
     android:layout_weight="1"
     android:background="#A4A4A4" />
   <Button
     android:layout_marginRight="3dp"
     android:layout_width="0dp"
     android:layout_height="wrap_content"
     android:layout_weight="1"
     android:background="#A4A4A4" />
   <Button
     android:layout_marginRight="3dp"
     android:layout_marginLeft="3dp"
     android:layout_width="0dp"
     android:layout_height="wrap_content"
     android:layout_weight="1"
     android:background="#A4A4A4" />
   <Button
     android:layout_width="0dp"
     android:layout_height="wrap_content"
     android:layout_weight="1"
     android:background="#A4A4A4" />
 </LinearLayout>
 <LinearLayout
   android:layout_marginTop="3dp"
   android:layout_width="match_parent"
   android:layout_height="wrap_content">
   <Button
     android:layout_marginRight="3dp"
     android:layout_width="0dp"
     android:layout_height="wrap_content"
     android:layout_weight="1"
     android:background="#A4A4A4" />
   <Button
     android:layout_marginRight="3dp"
     android:layout_width="0dp"
     android:layout_height="wrap_content"
     android:layout_weight="1"
     android:background="#A4A4A4" />
   <Button
     android:layout_marginRight="3dp"
     android:layout_marginLeft="3dp"
     android:layout_width="0dp"
     android:layout_height="wrap_content"
     android:layout_weight="1"
     android:background="#A4A4A4" />
   <Button
     android:layout_width="0dp"
     android:layout_height="wrap_content"
     android:layout_weight="1"
     android:background="#A4A4A4" />
 </LinearLayout>
 <LinearLayout
   android:layout_marginTop="3dp"
   android:layout_width="match_parent"
   android:layout_height="wrap_content">
   <Button
     android:layout_marginRight="3dp"
     android:layout_width="0dp"
     android:layout_height="wrap_content"
     android:layout_weight="1"
     android:background="#A4A4A4" />
   <Button
     android:layout_marginRight="3dp"
     android:layout_width="0dp"
     android:layout_height="wrap_content"
     android:layout_weight="1"
     android:background="#A4A4A4" />
   <Button
     android:layout_marginRight="3dp"
     android:layout_marginLeft="3dp"
     android:layout_width="0dp"
     android:layout_height="wrap_content"
     android:layout_weight="1"
     android:background="#A4A4A4" />
   <Button
     android:layout_width="0dp"
     android:layout_height="wrap_content"
     android:layout_weight="1"
     android:background="#A4A4A4" />
 </LinearLayout>
 <LinearLayout
   android:layout_marginTop="3dp"
   android:layout_width="match_parent"
   android:layout_height="wrap_content">
   <Button
     android:layout_marginRight="3dp"
     android:layout_width="0dp"
     android:layout_height="wrap_content"
     android:layout_weight="1"
     android:background="#A4A4A4"
     android:text=" " />
   <Button
     android:layout_marginRight="3dp"
     android:layout_width="0dp"
     android:layout_height="wrap_content"
     android:layout_weight="1"
     android:background="#A4A4A4" />
   <Button
     android:layout_marginRight="3dp"
     android:layout_marginLeft="3dp"
     android:layout_width="0dp"
     android:layout_height="wrap_content"
     android:layout_weight="1"
     android:background="#A4A4A4" />
   <Button
     android:layout_width="0dp"
     android:layout_height="wrap_content"
     android:layout_weight="1"
     android:background="#A4A4A4" />
 </LinearLayout>
 </LinearLayout>
 <LinearLayout
   android:orientation="horizontal"
   android:layout_marginTop="10dp"
   android:layout_marginBottom="0dp"
   android:background="#5399D9"
   android:layout_width="match_parent"
   android:layout_height="wrap_content">
   <Button
     android:layout_marginBottom="3dp"
     android:layout_marginTop="3dp"
     android:layout_marginLeft="15dp"
     android:layout_marginRight="3dp"
     android:background="#FFC727"
     android:layout_width="0dp"
     android:layout_height="wrap_content"
     android:layout_weight="1"
     android:text="AC"/>
   <Button
     android:layout_marginBottom="3dp"
     android:layout_marginTop="3dp"
     android:layout_marginRight="3dp"
     android:background="#6DB040"
     android:layout_width="0dp"
     android:layout_height="wrap_content"
     android:layout_weight="1"
     android:text="NG"/>
   <Button
     android:layout_marginBottom="3dp"
     android:layout_marginTop="3dp"
     android:layout_marginRight="3dp"
     android:background="#6DB040"
     android:layout_width="0dp"
     android:layout_height="wrap_content"
     android:layout_weight="1"
     android:text="後"/>
   <Button
     android:layout_marginBottom="3dp"
     android:layout_marginTop="3dp"
     android:layout_marginRight="3dp"
     android:background="#6DB040"
     android:layout_width="0dp"
     android:layout_height="wrap_content"
     android:layout_weight="1"
     android:text="急"/>
   <Button
     android:layout_marginBottom="3dp"
     android:layout_marginTop="3dp"
     android:layout_marginRight="3dp"
     android:background="#6DB040"
     android:layout_width="0dp"
     android:layout_height="wrap_content"
     android:layout_weight="1"
     android:text="▲"/>
   <Button
     android:layout_marginBottom="3dp"
     android:layout_marginTop="3dp"
     android:layout_marginRight="15dp"
     android:background="#FFC727"
     android:layout_width="0dp"
     android:layout_height="wrap_content"
     android:layout_weight="1"
     android:text="確認"/>
 </LinearLayout>
</LinearLayout>

弹出布局设置:

number:


<?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="match_parent"
 android:orientation="vertical"
 android:id="@+id/number"
 android:background="#FCFCFC">
 <LinearLayout
   android:layout_width="match_parent"
   android:layout_height="wrap_content">
   <EditText
     android:gravity="right"
     android:background="@drawable/edittext"
     android:layout_width="match_parent"
     android:layout_height="40dp"
     android:hint="0"
     android:textSize="35dp"
     />
 </LinearLayout>
 <LinearLayout
   android:orientation="horizontal"
   android:layout_width="match_parent"
   android:layout_height="wrap_content">
   <Button
     android:layout_marginRight="1dp"
     android:background="@drawable/button"
     android:layout_width="0dp"
     android:layout_height="wrap_content"
     android:layout_weight="1"
     android:text="7" />
   <Button
     android:layout_marginRight="1dp"
     android:background="@drawable/button"
     android:layout_width="0dp"
     android:layout_height="wrap_content"
     android:layout_weight="1"
     android:text="8" />
   <Button
     android:background="@drawable/button"
     android:layout_width="0dp"
     android:layout_height="wrap_content"
     android:layout_weight="1"
     android:text="9" />
 </LinearLayout>
 <LinearLayout
   android:layout_marginTop="1dp"
   android:orientation="horizontal"
   android:layout_width="match_parent"
   android:layout_height="wrap_content">
   <Button
     android:layout_marginRight="1dp"
     android:background="@drawable/button"
     android:layout_width="0dp"
     android:layout_height="wrap_content"
     android:layout_weight="1"
     android:text="4" />
   <Button
     android:layout_marginRight="1dp"
     android:background="@drawable/button"
     android:layout_width="0dp"
     android:layout_height="wrap_content"
     android:layout_weight="1"
     android:text="5" />
   <Button
     android:background="@drawable/button"
     android:layout_width="0dp"
     android:layout_height="wrap_content"
     android:layout_weight="1"
     android:text="6" />
 </LinearLayout>
 <LinearLayout
   android:orientation="horizontal"
   android:layout_width="match_parent"
   android:layout_height="wrap_content">
   <Button
     android:layout_marginRight="1dp"
     android:background="@drawable/button"
     android:layout_width="0dp"
     android:layout_height="wrap_content"
     android:layout_weight="1"
     android:text="1" />
   <Button
     android:layout_marginRight="1dp"
     android:background="@drawable/button"
     android:layout_width="0dp"
     android:layout_height="wrap_content"
     android:layout_weight="1"
     android:text="2" />
   <Button
     android:background="@drawable/button"
     android:layout_width="0dp"
     android:layout_height="wrap_content"
     android:layout_weight="1"
     android:text="3" />
 </LinearLayout>
 <LinearLayout
   android:orientation="horizontal"
   android:layout_width="match_parent"
   android:layout_height="wrap_content">
   <Button
     android:layout_marginRight="1dp"
     android:background="@drawable/button"
     android:layout_width="0dp"
     android:layout_height="wrap_content"
     android:layout_weight="1"
     android:text="0" />
   <Button
     android:layout_marginRight="1dp"
     android:background="@drawable/button"
     android:layout_width="0dp"
     android:layout_height="wrap_content"
     android:layout_weight="1"
     android:text="→" />
   <Button
     android:background="@drawable/button"
     android:layout_width="0dp"
     android:layout_height="wrap_content"
     android:layout_weight="1"
     android:text="C" />
 </LinearLayout>
 <LinearLayout
   android:orientation="horizontal"
   android:layout_width="match_parent"
   android:layout_height="wrap_content">
   <Button
     android:layout_width="0dp"
     android:layout_height="wrap_content"
     android:layout_weight="1"
     android:background="@drawable/button"
     android:text="戻る" />
   <Button
     android:layout_width="0dp"
     android:layout_height="wrap_content"
     android:layout_weight="1"
     android:background="@drawable/button"
     android:text="OK" />
 </LinearLayout>
</LinearLayout>

MainActivity布局:


package com.example.bige;
import android.support.v4.widget.PopupWindowCompat;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.PopupWindow;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
 Button mbtn;
 @Override
 protected void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   requestWindowFeature(Window.FEATURE_NO_TITLE);
   getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
   setContentView(R.layout.activity_main);
   View root = this.getLayoutInflater().inflate(R.layout.number,null);
   //设置弹出布局自适应大小
   final PopupWindow popup = new PopupWindow(root, WindowManager.LayoutParams.WRAP_CONTENT, WindowManager.LayoutParams.WRAP_CONTENT);
   mbtn = (Button) findViewById(R.id.num1);
   mbtn.setOnClickListener(new View.OnClickListener() {
     @Override
     public void onClick(View view) {
       // popup.isShowing();
       Toast.makeText(MainActivity.this, "hh", Toast.LENGTH_SHORT).show();
        //控制pupup弹出位置在父布局的中间显示
        //四个参数分别表示,要参考的控件view,相对位置,后边两个参数int x,int y表示偏移
       popup.showAtLocation(view, Gravity.CENTER,0,0);
     }
   });
 }
}

希望本文所述对大家Android程序设计有所帮助。

来源:http://blog.csdn.net/itzhongzi/article/details/51879946

标签:Android,popupWindow,弹出窗口
0
投稿

猜你喜欢

  • spring强行注入和引用实例解析

    2021-11-23 23:26:19
  • 在类库或winform项目中打开另一个winform项目窗体的方法

    2023-08-14 06:47:31
  • Java AtomicInteger类的使用方法详解

    2023-03-09 00:57:57
  • Spring Boot 入门教程

    2023-05-26 00:14:44
  • SpringBoot MongoDB与MongoDB GridFS基本使用

    2023-07-31 06:26:47
  • Android App开发中使用RecyclerView替代ListView的实践

    2021-06-14 06:53:36
  • java实现双色球抽奖算法

    2023-11-28 23:51:51
  • 利用spring aop实现动态代理

    2022-02-02 16:50:25
  • Android ViewPager小圆点指示器

    2022-05-09 11:21:43
  • vue+springboot前后端分离工程跨域问题解决方案解析

    2023-08-06 06:51:10
  • Java命令设计模式详解

    2022-07-14 04:38:31
  • Java求最小生成树的两种算法详解

    2023-11-10 07:21:24
  • Android Studio利用AChartEngine制作饼图的方法

    2021-12-28 10:53:30
  • Android4.4 WebAPI实现拍照上传功能

    2023-08-17 00:46:21
  • Java实现拖拽列表项的排序功能

    2023-11-28 23:39:00
  • C#实现窗体淡入淡出效果的方法总结

    2021-05-28 08:23:37
  • java中初始化MediaRecorder的实现方法

    2023-11-29 03:54:52
  • Android利用属性动画实现优酷菜单

    2022-06-15 13:16:44
  • Java解析Excel内容的方法

    2023-03-20 20:36:26
  • Java反射机制的学习总结

    2022-08-30 07:20:39
  • asp之家 软件编程 m.aspxhome.com