Android开发实现popupWindow弹出窗口自定义布局与位置控制方法
程序员文章站
2024-02-12 13:01:34
本文实例讲述了android开发实现popupwindow弹出窗口自定义布局与位置控制方法。分享给大家供大家参考,具体如下:
布局文件:
主布局文件:activity_...
本文实例讲述了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相关内容感兴趣的读者可查看本站专题:《android窗口相关操作技巧总结》、《android开发入门与进阶教程》、《android调试技巧与常见问题解决方法汇总》、《android基本组件用法总结》、《android视图view技巧总结》、《android布局layout技巧总结》及《android控件用法总结》
希望本文所述对大家android程序设计有所帮助。