Android 中Popwindow弹出菜单的两种方法实例
程序员文章站
2023-12-02 13:33:34
android 中popwindow弹出菜单的两种方法实例
1.popwindow就是对话框的一种方式!
此文讲解的android中对话框的一种使用方式,它叫popwi...
android 中popwindow弹出菜单的两种方法实例
1.popwindow就是对话框的一种方式!
此文讲解的android中对话框的一种使用方式,它叫popwindow。
2、popwindow的特性
android的对话框有两种:popupwindow和alertdialog。它们的不同点在于:
alertdialog的位置固定,而popupwindow的位置可以随意。
alertdialog是非阻塞线程的,而popupwindow是阻塞线程的。
popupwindow的位置按照有无偏移分,可以分为偏移和无偏移两种;按照参照物的不同,可以分为相对于某个控件(anchor锚)和相对于父控件。
实例代码:
方法一的activity
package com.app.test02; import android.app.activity; import android.os.bundle; import android.view.gravity; import android.view.motionevent; import android.view.view; import android.view.view.onclicklistener; import android.view.view.ontouchlistener; import android.view.viewgroup.layoutparams; import android.widget.button; import android.widget.popupwindow; import android.widget.toast; public class popwindowleft extends activity { // 声明popupwindow对象的引用 private popupwindow popupwindow; /** called when the activity is first created. */ @override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_popupwindow_main); // 点击按钮弹出菜单 button pop = (button) findviewbyid(r.id.popbtn); pop.setonclicklistener(popclick); } // 点击弹出左侧菜单的显示方式 onclicklistener popclick = new onclicklistener() { @override public void onclick(view v) { // todo auto-generated method stub getpopupwindow(); // 这里是位置显示方式,在屏幕的左侧 popupwindow.showatlocation(v, gravity.left, 0, 0); } }; /** * 创建popupwindow */ protected void initpopuptwindow() { // todo auto-generated method stub // 获取自定义布局文件activity_popupwindow_left.xml的视图 view popupwindow_view = getlayoutinflater().inflate(r.layout.activity_popupwindow_left, null, false); // 创建popupwindow实例,200,layoutparams.match_parent分别是宽度和高度 popupwindow = new popupwindow(popupwindow_view, 200, layoutparams.match_parent, true); // 设置动画效果 popupwindow.setanimationstyle(r.style.animationfade); // 点击其他地方消失 popupwindow_view.setontouchlistener(new ontouchlistener() { @override public boolean ontouch(view v, motionevent event) { // todo auto-generated method stub if (popupwindow != null && popupwindow.isshowing()) { popupwindow.dismiss(); popupwindow = null; } return false; } }); } /*** * 获取popupwindow实例 */ private void getpopupwindow() { if (null != popupwindow) { popupwindow.dismiss(); return; } else { initpopuptwindow(); } } }
方法二的activity
package com.app.test02; import android.app.activity; import android.os.bundle; import android.view.gravity; import android.view.motionevent; import android.view.view; import android.view.view.onclicklistener; import android.view.view.ontouchlistener; import android.view.viewgroup.layoutparams; import android.widget.popupwindow; public class popwindowleftnew extends activity{ private popupwindow popupwindow; @override protected void oncreate(bundle savedinstancestate) { // todo auto-generated method stub super.oncreate(savedinstancestate); setcontentview(r.layout.activity_popupwindow_main); findviewbyid(r.id.popbtn).setonclicklistener(new onclicklistener() { @override public void onclick(view v) { // todo auto-generated method stub // 获取自定义布局文件activity_popupwindow_left.xml的视图 view popupwindow_view = getlayoutinflater().inflate(r.layout.activity_popupwindow_left, null,false); // 创建popupwindow实例,200,layoutparams.match_parent分别是宽度和高度 popupwindow = new popupwindow(popupwindow_view, 200, layoutparams.match_parent, true); // 设置动画效果 popupwindow.setanimationstyle(r.style.animationfade); // 这里是位置显示方式,在屏幕的左侧 popupwindow.showatlocation(v, gravity.left, 0, 0); // 点击其他地方消失 popupwindow_view.setontouchlistener(new ontouchlistener() { @override public boolean ontouch(view v, motionevent event) { // todo auto-generated method stub if (popupwindow != null && popupwindow.isshowing()) { popupwindow.dismiss(); popupwindow = null; } return false; } }); } }); } }
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
推荐阅读
-
Android 中Popwindow弹出菜单的两种方法实例
-
android popwindow实现左侧弹出菜单层及PopupWindow主要方法介绍
-
Android之用PopupWindow实现弹出菜单的方法详解
-
Android中TelephonyManager类的方法实例分析
-
在Android中创建菜单项Menu以及获取手机分辨率的解决方法
-
PHP5中实现多态的两种方法实例分享
-
解析android中隐藏与显示软键盘及不自动弹出键盘的实现方法
-
将文件放到Android模拟器的SD卡中的两种解决方法
-
详解Android 8.1.0 Service 中 弹出 Dialog的方法
-
Android加载大分辨率图片到手机内存中的实例方法