PopupWindow

==>

PopupWindow可创建类似对话框的窗口,使用其创建对话框窗口的操作步骤:

  1.调用PopupWindow构造器构造PopupWindow对象;

  2.调用PopupWindow的showAsDropDown(View v)将PopupWindow作为v组件的下拉组件显示出来;

     或调用PopupWindow的showAtLocation方法将PopupWindow在指定位置显示出来。

注意:

AlertDialog不能指定显示位置,只能默认显示在屏幕最中间(也可以通过设置WindowManager参数来改变位置);

而PopupWindow是可以指定显示位置的,随便哪个位置都可以,更加灵活。

实例如下:

布局文件==》
<?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="horizontal" ><Buttonandroid:id="@+id/btnTest"android:gravity="center_horizontal"android:layout_width="wrap_content"android:layout_height="wrap_content" android:text="110"/></LinearLayout><?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" ><ImageViewandroid:id="@+id/header"android:background="@drawable/eighteen"android:layout_width="wrap_content"android:layout_height="wrap_content" /><Buttonandroid:id="@+id/btnclose"android:layout_width="match_parent"android:layout_height="wrap_content" android:text="关闭"/>
</LinearLayout>代码实现==》
package com.example.mypopupwindow;import android.os.Bundle;
import android.app.Activity;
import android.view.Gravity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.PopupWindow;public class MainActivity extends Activity
{@Overrideprotected void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);// 装载R.layout.acitivity_main对应的界面布局View root = this.getLayoutInflater().inflate(R.layout.popup, null);// 创建PopupWindow对象final PopupWindow popup = new PopupWindow(root, 500, 500);Button btn = (Button) this.findViewById(R.id.btnTest);btn.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v){// 以下拉方式显示popup.showAsDropDown(v);// 将PopupWindow显示在指定位置popup.showAtLocation(findViewById(R.id.btnTest), Gravity.CENTER_HORIZONTAL, 200, 200);}});root.findViewById(R.id.btnclose).setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v){popup.dismiss();}});}@Overridepublic boolean onCreateOptionsMenu(Menu menu){// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}}

运行效果:略

转载于:https://www.cnblogs.com/YYkun/p/5780429.html

android学习笔记17——对话框(PopupWindow)相关推荐

  1. Android学习笔记17:单项选择RadioButton和多项选择CheckBox的使用

    在Android中,可以通过RadioButton和RadioGroup的组合来实现单项选择的效果.而多项选择则是通过CheckBox来实现的. 1.单项选择RadioButton 我们知道,一个单项 ...

  2. Pro Android学习笔记(二九):用户界面和控制(17):include和merge

    xml控件代码重用:include 如果我们定义一个控件,需要在不同的layout中重复使用,或者在同一个layout中重复使用,可以采用include的方式.例如定义my_button.xml如下 ...

  3. 【转】 Pro Android学习笔记(二九):用户界面和控制(17):include和merge

    目录(?)[-] xml控件代码重用include xml控件代码重用merge 横屏和竖屏landsacpe portrait xml控件代码重用:include 如果我们定义一个控件,需要在不同的 ...

  4. Android学习笔记之(一)开发环境搭建

    Android学习笔记之(一)开发环境搭建 zouxy09@qq.com http://blog.csdn.net/zouxy09 至于说Android是什么之类的俺就不啰嗦了,因为它离我们太近了.直 ...

  5. Android学习笔记:Android基础知识点(不断更新中)

    1.Android学习笔记:OkHttp 2.Android学习笔记:更新UI的方法(UI线程和非UI线程) 3.Android学习笔记:Volley 4.Android学习笔记:Handler 5. ...

  6. Android学习笔记-常用的一些源码,防止忘记了

    Android学习笔记-常用的一些源码,防止忘记了... 设置拨打电话 StringdialUri="tell:"+m_currentTelNumble; IntentcallIn ...

  7. Android学习笔记21:ImageView获取网络图片

    Android平台有3种网络接口可以使用,它们分别是:java.net.*(标准java接口).org.apache(Apache接口)和android.net.*(Android网络接口).本文将使 ...

  8. Android学习笔记26:图片切换控件ImageSwitcher的使用

    在Windows操作系统中,要查看多张图片,可以通过使用"Windows照片查看器"在"上一张"和"下一张"之间切换,进行多张图片的浏览. ...

  9. 【转】 Pro Android学习笔记(二十):用户界面和控制(8):GridView和Spinner

    目录(?)[-] GridView Spinner GridView GridView是网格状布局,如图所示.在了解ListView后,很容易了解GridView.下面是例子的XML文件. <? ...

最新文章

  1. 洛谷 P1028 数的计算
  2. 获取extjs 选择后的表头_批量写入审计底稿的表头信息设定页面
  3. 几个有趣的python技巧
  4. Java并发包中Semaphore的工作原理、源码分析及使用示例
  5. (49)Verilog HDL SPI接收设计
  6. SpringCloud常见面试题(2020最新版)
  7. 生成微信蓝色昵称,原来如此简单
  8. LeetCode之两个数组的交集
  9. 折线分割平面(递推dp)
  10. java 使用websocket_Java使用WebSocket
  11. 计算机基础知识整理 世上最全,IT小白必看:计算机基础知识整理大全
  12. python清洗数据去除停用词_python去除停用词(结巴分词下)
  13. 不参与,你怎么知道能有多刺激——一个币客与市场的深入对话
  14. 【2021/7/19 更新】【梳理】简明操作系统原理 附录一 虚拟内存子系统案例选讲(VAX/VMS + Linux)(docx)
  15. 供应链业务架构设计概览
  16. 离散数学-自反性-对称性-传递性,关系的性质
  17. 编写可读代码的艺术读书整理
  18. 团队作业1--团队展示选题
  19. echarts柱状图改变标签的位置及柱状图颜色
  20. [Ubuntu]使用DataDog集成跟踪Django项目

热门文章

  1. java perm 查看_高级 Java 必须掌握:JVM 分析工具和查看命令,超详细
  2. yjv是电缆还是电线_VV是什么电缆?与YJV电缆有何区别?
  3. 人类一败涂地做图教程_《人类一败涂地》形象绘画技巧图文指南
  4. python网络套接字_Python网络编程 Python套接字编程
  5. 引用管理器没有程序集_如何使用Zotero插入引用文献
  6. python实现语音播放_用Python实现语音播报
  7. python编程输入名字配对情侣网名_输入名字配对情侣网名 好听的情侣网名大全...
  8. 开发java程序的步骤_开发 Java 程序的一般步骤是:源程序编辑、 和 。_学小易找答案...
  9. linux的yun命令是访问互联网,如何在Linux终端中知道你的公有IP?
  10. mysql校对规则_MYSQL校对规则