码迷,mamicode.com
首页 > Windows程序 > 详细

自定义 Popwindow

时间:2014-09-10 23:57:11      阅读:736      评论:0      收藏:0      [点我收藏+]

标签:android   自定义 view   popwindow   控件   

popwindow 是比较常用的一种控件,为了灵活使用,会自定义 popwidow ,继承 popwindow。

这篇文章主要介绍如何自定义 popwindow ,同时响应 popwindow 中 view 的事件。

1. 定义 MenuPop 继承 popwindow

具体代码如下 :

public class MenuPopwindow extends PopupWindow implements OnClickListener {

	private Context context;

	private View mMenu;
	private TextView tv1, tv2, tv3, tv4;
	public MenuPopwindow(Context context) {
// 这一行代码一定不能忘了
// 不然,初始化的时候会有 NullPointException
		super(context);
		this.context = context;
//view 控件
		initView();
		initData();
	}
	private void initView() {
		LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
		mMenu = inflater.inflate(R.layout.menu_main, null);
		tv1 = (TextView) mMenu.findViewById(R.id.menu_1);
		tv2 = (TextView) mMenu.findViewById(R.id.menu_2);
		tv3 = (TextView) mMenu.findViewById(R.id.menu_3);
		tv4 = (TextView) mMenu.findViewById(R.id.menu_4);
		
		tv1.setOnClickListener(this);
		tv2.setOnClickListener(this);
		tv3.setOnClickListener(this);
		tv4.setOnClickListener(this);
	}

	private void initData() {
// 设置 popwindow 的背景 
		this.setContentView(mMenu);
// 设置 width ,height 
		this.setWidth(LayoutParams.MATCH_PARENT);
		this.setHeight(LayoutParams.WRAP_CONTENT);
		// 这句话很关键,popwindow 显示的时候 会获取焦点,点击其他区域可以消失
// 如果设置为 false ,点击其他区域不会消失
		this.setFocusable(true);
		// 设置popup的 背景
		 ColorDrawable colorDrawable = new ColorDrawable(0Xb0000000);
		 this.setBackgroundDrawable(colorDrawable);
	}

	@Override
	public void onClick(View v) {
		switch (v.getId()) {
		case R.id.menu_1:
			SetToast.setToastShort(context, "我是大哥");
			break;
		case R.id.menu_2:
			SetToast.setToastShort(context, "我是二哥");
			break;
		case R.id.menu_3:
			SetToast.setToastShort(context, "我是三哥");
			break;
		case R.id.menu_4:
			SetToast.setToastShort(context, "我是小弟");
			break;
		default:
			break;
		}
	}

}



下面是 popwindow 的 使用 

在 Activity 的 点击事件中 ,弹出 popwindow 

具体代码如下 

<pre name="code" class="html">//初始化 
MenuPopwindow popwindow = new MenuPopwindow(this);

//在需要弹出 popwindow 的 地方调用 
// 第一个参数,弹出的相对 parent view  ,btnView 
// 第二个, 位置
// 第三、第四 相对 parent 的 偏移
popwindow.showAtLocation(btnView,Gravity.BOTTOM,0,0);




这样一个简单的 popwindow 就定义好了。显示效果 如下 bubuko.com,布布扣














自定义 Popwindow

标签:android   自定义 view   popwindow   控件   

原文地址:http://blog.csdn.net/imesong/article/details/39188541

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!