




已阅读5页,还剩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的对象,是布局中的根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(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.showAtLocation(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 mHelpbtn = (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(); /响应点击事件之后关闭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) 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;70 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键和其他地方使其消失,设置了这个才能触发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 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 layout=(LinearLayout)findViewById(R.id.exit_layout);19 layout.setOnClickListener(new OnClickListener() 20 21 Override22 public void onClick(View v) 23 / TODO Auto-generated method stub24 Toast.makeText(getApplicationContext(), 提示:点击窗口外部关闭窗口!, 25 Toast.LENGTH_SHORT).show(); 26 27 );28 29 30 Override31 public boolean onTouchEvent(MotionEvent event)32 finish();33 return true;34 35 36 public void exitbutton1(View v) 37 this.finish(); 38 39 public void exitbutton0(View v) 40 this.finish();41 MainWeixin.instance.finish();/关闭Main 这个Activity42 43 附上布局文件:exit_dialog.xmlView Code 1 2 9 10 18 19 28 29 30 36 37 48 49 61 62 63 分析,弹出exit这个框很简单,本身就是activity,在主界面用startavtivity等方法像普通activity启动。关键是如何做到点击其他地方退出和如何关闭程序。1、点击其他地方退出,只要监听OnClickListener让所有的点击都退出就行了(除了xml中指定按钮事件之外)。2、退出主程序。只要在出程序中将主程序自己设置成静态对象,在外部调用即可 public static MainWeixin instance=null;上面的布局和activity并不能将activity的窗体展现在主界面之上,看起来像个弹出框。下面是弹出框的styles配置: 1 2 android:color/transparent 3 null 4 true 5 true 6 true 7 null 8 android:style/Animation.Dialog 9 true10 下面我们来分析一下这个布局的含义及重点:重点1、android:color/transparent
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电阻考试题及答案
- 中华传统文化(青岛黄海学院)知到智慧树答案
- 中级微观经济学(双语)知到智慧树答案
- 幼儿教师招聘教师资格证《综合素质》考试模拟试卷及答案
- 接待转科患者处理流程和新生儿呕吐试题(附答案)
- 体外诊断试剂培训试题及答案
- 冷链培训试卷(含答案)
- 2025年房地产项目建筑材料安全性能采购合同
- 补虚药临床转化研究-洞察及研究
- 2025年变压器项目融资合作合同
- 四川省2024年高等职业教育单独招生考试中职类语文试题及答案
- 实验室危化品安全管理培训
- 复苏室患者的交接流程
- 老旧小区改造给排水施工方案
- 【人教版化学】选择性必修1 知识点默写小纸条(答案背诵版)
- DB21-T 2523-2015矿山地质环境恢复治理规程
- 2024天津高考英语试题及答案
- 实验室中央空调施工方案
- 幼儿园 中班语言绘本《章鱼先生卖雨伞》
- 中医学藏象学说课件
- 软件平台建设和运营合同
评论
0/150
提交评论