android中PopupWindow弹出式窗体菜单简单记录(11)
2016-01-23 00:00
567 查看
摘要: PopupWindow在Activity一运行就创建,只是一般要按菜单键才能显示出来,
运行效果图:点击菜单键才弹出
//PopupWindow和PopupMenu 的简单记录 public class MainActivity extends Activity { private PopupWindow popupWindow; private View contentView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // PopupWindow在Activity一运行就创建,只是要按菜单键才能显示出来 createPopupWindow();// 初始化创建一个布局菜单方法 } // PopupWindow采用自定义的一个布局,点击主菜单(Menu)才能显示出来 private void createPopupWindow() { // 加载布局,下面会用到这里的一些参数,所以要使用布局生成器,在全局定义 contentView = getLayoutInflater().inflate(R.layout.popwindows, null); // new PopupWindow(contentView, width, height, focusable)//要布局生成器、宽、高、聚焦 popupWindow = new PopupWindow(contentView, LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);// 可以不写聚焦或者写为false } // popupWindow显示出来后,三个ImageView可以触发事件 public void bntClick(View view) { switch (view.getId()) { case R.id.pop_back: // 回到Home Intent intent = new Intent(); intent.setAction(intent.ACTION_MAIN); intent.addCategory(intent.CATEGORY_HOME); startActivity(intent); finish(); break; case R.id.pop_share: Intent intent2 = new Intent(); intent2.setAction(Intent.ACTION_CALL); intent2.setData(Uri.parse("tel:10086")); startActivity(intent2); break; case R.id.pop_collent: Intent intent3 = new Intent(); intent3.setAction(Intent.ACTION_SENDTO); intent3.setData(Uri.parse("smsto:10086")); intent3.putExtra("sms_body", "吃饭了!!"); startActivity(intent3); break; } } // PopupWindow通过menu菜单按钮来触发显示或隐藏 @Override public boolean onKeyDown(int keyCode, KeyEvent event) { switch (keyCode) { // 判断是否是Menu键 case KeyEvent.KEYCODE_MENU: if (popupWindow.isShowing()) {// 按菜单键,如果显示则 隐藏 popupWindow.dismiss(); } else { popupWindow.showAtLocation(contentView, Gravity.BOTTOM, 0, 0); } break; case KeyEvent.KEYCODE_BACK: if (popupWindow.isShowing()) {// 按返回键时,如果显示则 (隐藏) popupWindow.dismiss(); return false; } break; } return super.onKeyDown(keyCode, event); } } //PopupWindow中的布局文件 <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" > <ImageView android:id="@+id/pop_back" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:onClick="bntClick" android:src="@drawable/contentback" /> <ImageView android:id="@+id/pop_share" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:onClick="bntClick" android:src="@drawable/contentshare" /> <ImageView android:id="@+id/pop_collent" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:onClick="bntClick" android:src="@drawable/collectcontent" /> </LinearLayout>
运行效果图:点击菜单键才弹出
相关文章推荐
- android中popmenu简单记录(11)
- android:中两种创建Fragment的方法(12)
- android:选项(OptionMenu)和上下文菜单 (ContextMenu )简单记录(11
- android:ListFragment简单记录(12)
- Android Studio 2.0 preview3 BUG
- akira的android豆知识160122
- Android基础之自定义控件、布局以及ListView控件
- Android Radiobutton 文字颜色随选中状态而改变
- Ace教你一步一步做Android新闻客户端(五) 优化Listview
- Android keystore 的MD5、SHA1值获取方法
- Android ANR
- Android 内容提供器(Content Provider)介绍
- android studio 运行java文件
- Android Studio 2.0 Preview 6 尝鲜记
- Android异步任务AsyncTask
- Android 通过自定义控件方式实现带开关效果的左右切换选择器。
- 手把手带你画一个漂亮蜂窝view Android自定义view
- android failed:EISDIR(Is a directory)错误
- android wav录音,停止和播放
- android 自定义相机