弹出窗口两种方法(2020年8月).doc

上传人:xiang****la438 文档编号:141103425 上传时间:2020-08-04 格式:DOC 页数:6 大小:122.07KB
返回 下载 相关 举报
弹出窗口两种方法(2020年8月).doc_第1页
第1页 / 共6页
弹出窗口两种方法(2020年8月).doc_第2页
第2页 / 共6页
弹出窗口两种方法(2020年8月).doc_第3页
第3页 / 共6页
弹出窗口两种方法(2020年8月).doc_第4页
第4页 / 共6页
弹出窗口两种方法(2020年8月).doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《弹出窗口两种方法(2020年8月).doc》由会员分享,可在线阅读,更多相关《弹出窗口两种方法(2020年8月).doc(6页珍藏版)》请在金锄头文库上搜索。

1、一 寸 光 阴 不 可 轻先贴上最常见的方法,主要讲activity的方法。一、弹出PopupWindow 1 /* 2 * 弹出menu菜单 3 */ 4 public void menu_press() 5 if(!menu_display) 6 /获取LayoutInflater实例 7 inflater = (LayoutInflater)this.getSystemService(LAYOUT_INFLATER_SERVICE); 8 /这里的main布局是在inflate中加入的哦,以前都是直接this.setContentView()的吧?呵呵 9 /该方法返回的是一个View的

2、对象,是布局中的根10 layout = inflater.inflate(R.layout.main_menu, null);11 12 /下面我们要考虑了,我怎样将我的layout加入到PopupWindow中呢?很简单13 menuWindow = new PopupWindow(layout,LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT); /后两个参数是width和height14 /menuWindow.showAsDropDown(layout); /设置弹出效果15 /menuWindow.showAsDropDown(

3、null, 0, layout.getHeight();16 17 /设置如下四条信息,当点击其他区域使其隐藏,要在show之前配置18 menuWindow.setFocusable(true);19 menuWindow.setOutsideTouchable(true);20 menuWindow.update();21 menuWindow.setBackgroundDrawable(new BitmapDrawable();22 23 mClose = (LinearLayout)layout.findViewById(R.id.menu_close);24 menuWindow.s

4、howAtLocation(this.findViewById(R.id.schoolmain), Gravity.BOTTOM|Gravity.CENTER_HORIZONTAL, 0,50); /设置layout在PopupWindow中显示的位置25 /如何获取我们main中的控件呢?也很简单26 mMainbtn = (LinearLayout)layout.findViewById(R.id.menu_main_btn);27 mHistorybtn = (LinearLayout) layout.findViewById(R.id.menu_history_btn);28 mHel

5、pbtn = (LinearLayout) layout.findViewById(R.id.menu_help_btn);29 30 31 32 /下面对每一个Layout进行单击事件的注册吧。33 /比如单击某个MenuItem的时候,他的背景色改变34 /事先准备好一些背景图片或者颜色35 mMainbtn.setOnClickListener (new View.OnClickListener() 36 Override37 public void onClick(View arg0) 38 mywebView.loadUrl(URL);39 menuWindow.dismiss();

6、 /响应点击事件之后关闭Menu40 41 );42 mHelpbtn.setOnClickListener (new View.OnClickListener() 43 Override44 public void onClick(View arg0) 45 mywebView.loadUrl(URL);46 menuWindow.dismiss(); /响应点击事件47 48 );49 mHistorybtn.setOnClickListener (new View.OnClickListener() 50 Override51 public void onClick(View arg0)

7、 52 mywebView.loadUrl(URL);53 menuWindow.dismiss(); /响应点击事件54 55 ); 56 menu_display = true; 57 else58 /如果当前已经为显示状态,则隐藏起来59 menuWindow.dismiss();60 menu_display = false;61 62 63 64 65 public void back_press()66 67 if(menu_display) /如果 Menu已经打开 ,先关闭Menu68 menuWindow.dismiss();69 menu_display = false;7

8、0 71 else 72 Intent intent = new Intent();73 intent.setClass(MainActivity.this,Exit.class);74 startActivity(intent);75 76 这种方法很简单,要注意的是如果要想点击其他地方使其隐藏,要在show设置四条属性如下: / 使其聚焦 mPopupWindow.setFocusable(true); / 设置允许在外点击消失 mPopupWindow.setOutsideTouchable(true); /刷新状态 mPopupWindow.update(); /点back键和其他地方

9、使其消失,设置了这个才能触发OnDismisslistener ,设置其他控件变化等操作 mPopupWindow.setBackgroundDrawable(new BitmapDrawable();二、Activity做伪弹窗本人感觉这个很先进啊。恕我冒犯,我只这里直接写上牛人的代码。此牛人写的是防微信的demo。做的相当好,我在后面附上CSDN免费下载链接。先贴上java代码Exit.java 1 package cn.buaa.myweixin; 2 3 import android.app.Activity; 4 import android.os.Bundle; 5 import

10、android.view.MotionEvent; 6 import android.view.View; 7 import android.view.View.OnClickListener; 8 import android.widget.LinearLayout; 9 import android.widget.Toast;10 11 public class Exit extends Activity 12 13 private LinearLayout layout;14 Override15 protected void onCreate(Bundle savedInstanceState) 16 super.onCreate(savedInstanceState);17 setContentView(R.layout.exit_dialog);18 layou

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 总结/报告

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号