Popupwindow的使用
来源:互联网 发布:d3.js圆形图 编辑:程序博客网 时间:2024/06/06 11:35
PopupWindow在Android.widget包下,项目中经常会使用到PopupWindow做菜单选项, PopupWindow这个类用来实现一个弹出框,可以使用任意布局的View作为其内容,这个弹出框是悬浮在当前activity之上的。
效果图:
Java代码:
MainActivity.java
public class MainActivity extends Activityimplements OnClickListener {
private PopupWindowmPopWindow;
private View parentView;
private Context context;
ImageView mImageViewBar;
@Override
protected voidonCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
context = this;
initView();
}
private voidinitView() {
// TODOAuto-generated method stub
parentView =getLayoutInflater().inflate(R.layout.activity_main,null);
mImageViewBar =(ImageView) findViewById(R.id.menu);
mImageViewBar.setOnClickListener(this);
showPopupWindow();
}
private voidshowPopupWindow() {
LayoutInflater inflater = (LayoutInflater)context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View contentView =inflater.inflate(R.layout.popuplayout,null);
mPopWindow = newPopupWindow(contentView);
mPopWindow.setWidth(ViewGroup.LayoutParams.WRAP_CONTENT);
mPopWindow.setHeight(ViewGroup.LayoutParams.WRAP_CONTENT);
mPopWindow = newPopupWindow();
// 设置SelectPicPopupWindow的View
mPopWindow.setContentView(contentView);
// 设置SelectPicPopupWindow弹出窗体的宽
mPopWindow.setWidth(LayoutParams.WRAP_CONTENT);
// 设置SelectPicPopupWindow弹出窗体的高
mPopWindow.setHeight(LayoutParams.WRAP_CONTENT);
// 设置SelectPicPopupWindow弹出窗体可点击
mPopWindow.setFocusable(true);
mPopWindow.setOutsideTouchable(true);
// 刷新状态
mPopWindow.update();
// 实例化一个ColorDrawable颜色为半透明
ColorDrawable dw = newColorDrawable(0000000000);
// 点back键和其他地方使其消失,设置了这个才能触发OnDismisslistener,设置其他控件变化等操作
mPopWindow.setBackgroundDrawable(dw);
contentView.findViewById(R.id.memu1).setOnClickListener(this);
contentView.findViewById(R.id.memu2).setOnClickListener(this);
contentView.findViewById(R.id.memu3).setOnClickListener(this);
}
@Override
public voidonClick(View v) {
int id =v.getId();
switch (id) {
case R.id.menu:
mPopWindow.showAsDropDown(mImageViewBar);
break;
case R.id.memu1: {
Toast.makeText(context,"消息", Toast.LENGTH_SHORT).show();
mPopWindow.dismiss();
}
break;
case R.id.memu2: {
Toast.makeText(context,"收藏", Toast.LENGTH_SHORT).show();
mPopWindow.dismiss();
}
break;
case R.id.memu3: {
Toast.makeText(context,"首页", Toast.LENGTH_SHORT).show();
mPopWindow.dismiss();
}
break;
}
}
@Override
protected voidonDestroy() {
// TODOAuto-generated method stub
super.onDestroy();
mPopWindow.dismiss();
}
}
activity_main.xml<?xml version="1.0" encoding="utf-8"?>
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#FFFFFF"
android:orientation="vertical">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#E4E4E4"
android:minHeight="55dp">
<ImageView
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_centerVertical="true"
android:layout_marginLeft="8dp"
android:layout_marginRight="5dp"
android:focusable="true"
android:src="@drawable/abc_ic_ab_back_mtrl_am_alpha"/>
<ImageView
android:id="@+id/menu"
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="9dp"
android:src="@drawable/top_arrow_message1"/>
</RelativeLayout>
</LinearLayout>
popuplayout.xml<?xml version="1.0" encoding="utf-8"?>
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="vertical">
<LinearLayout
android:layout_width="120dp"
android:layout_height="130dp"
android:layout_marginRight="2dp"
android:background="@drawable/danchu"
android:gravity="center_vertical"
android:orientation="vertical">
<RelativeLayout
android:id="@+id/memu1"
android:layout_width="wrap_content"
android:layout_height="30dp"
android:layout_marginTop="5dp"
android:gravity="center_vertical">
<ImageView
android:id="@+id/xiaoxi"
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_marginLeft="10dp"
android:src="@drawable/android_arrow_application"/>
<TextView
android:id="@+id/pop_computer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_toRightOf="@+id/xiaoxi"
android:text="消息"
android:textColor="#FFFFFF"/>
</RelativeLayout>
<View
android:layout_width="wrap_content"
android:layout_height="1dp"/>
<RelativeLayout
android:id="@+id/memu2"
android:layout_width="wrap_content"
android:layout_height="30dp"
android:layout_marginTop="5dp"
android:gravity="center_vertical">
<ImageView
android:id="@+id/shanchu"
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_marginLeft="10dp"
android:src="@drawable/android_arrow_profitbillsm"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_toRightOf="@+id/shanchu"
android:text="收藏"
android:textColor="#FFFFFF"/>
</RelativeLayout>
<View
android:layout_width="wrap_content"
android:layout_height="1dp"/>
<RelativeLayout
android:id="@+id/memu3"
android:layout_width="wrap_content"
android:layout_height="30dp"
android:layout_marginBottom="5dp"
android:layout_marginTop="5dp"
android:gravity="center_vertical">
<ImageView
android:id="@+id/dianjifanhui"
android:layout_width="18dp"
android:layout_height="20dp"
android:layout_marginLeft="10dp"
android:src="@drawable/dir15"/>
<TextView
android:id="@+id/pop_manage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_toRightOf="@+id/dianjifanhui"
android:text="首页"
android:textColor="#FFFFFF"/>
</RelativeLayout>
<View
android:layout_width="wrap_content"
android:layout_height="1dp"/>
</LinearLayout>
</LinearLayout>
项目源码:
Eclipse: http://download.csdn.net/detail/dickyqie/9615658
AndroidStudio: https://github.com/DickyQie/android-basic-control
- Android PopupWindow的使用
- Android PopupWindow的使用
- Android PopupWindow的使用!!!
- 关于popupWindow的使用
- PopupWindow的使用
- PopupWindow的使用例子
- PopupWindow的使用
- popupWindow的使用心得
- PopupWindow的使用
- PopupWindow的使用
- Android PopupWindow的使用!!!
- PopupWindow的使用
- PopupWindow的使用
- popupWindow的使用
- PopupWindow的使用
- PopupWindow的使用
- Popupwindow的使用
- PopupWindow的使用
- 使用开源项目开发vcenter客户端
- ConcurrentHashMap
- Git SSH Key 生成步骤
- UVA 1336 Fixing the Great Wall
- iOS10适配
- Popupwindow的使用
- spring和redis的整合
- java 中的 成员变量、局部变量、静态变量、类变量、非静态变量、实例变量、向前引用、非法向前引用、静态代码块、非静态代码块 执行时机
- hadoop集群sqoop2安装指南
- 【GLSL教程】(二)在OpenGL中使用GLSL
- OD常用快捷键
- SpringMVC从Controller跳转到另一个Controller
- C学习阶段的遗漏二
- JVM的内存区域划分