You are here Android > 开发者 > 开发讨论 > PopupWindow实现自定义弹出层

机器人


93.089%

disconnected
登录后回复主题 | 跳到回复

PopupWindow实现自定义弹出层

... by 机器人 ... 19 月 17 天前 ... 1125 次点击

Android系统的AlertDailog ,Menu。。。之类控件,我不确定能否自定义样式。 就是在应用中自定义一套主题。
论坛里有人在这方面有研究的,希望能够交流。

因为系统Menu菜单极其单一。样式丑陋,而且字体,字号都无法修改。??想到用PopupWindow来实现
效果图如下。



这个是目前正在开发的一个股票行情工具的截图。 之前有人寻画K线图的方法。 日后再详细写一个帖子。

PopupWindow 其实 是一个??Activity? ?但是消耗的系统资源没有 Activity那么大。 是一个小型的UI线程 (可以这么理解吧)。

主体代码
//长按弹出菜单
public void showTopWindow(){
??if (mPopupWindow==null);{
? ?inintTopWindow();
??}
??
??mPopupWindow.showAtLocation(findViewById(R.id.full_main), Gravity.CENTER|Gravity.CENTER, 0, 0);??
??
}
// 长按弹出层
public void inintTopWindow(){
??
??LayoutInflater mLayoutInflater = (LayoutInflater) (FullScreenLineActivity.this).getSystemService(LAYOUT_INFLATER_SERVICE);
??View topWindow=mLayoutInflater.inflate(R.layout.k_line_top_window_layout, null);??
??mPopupWindow=new PopupWindow(topWindow,LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT);
??mPopupWindow.setOutsideTouchable(false);
??topWindow.findViewById(R.id.f10info).setOnClickListener(new View.OnClickListener() {
? ?
? ?@Override
? ?public void onClick(View v) {
? ? // TODO Auto-generated method stub
? ? 。。。
? ?}
??});
}


PopupWindow的布局可以自定义 xml? ? 。??弹出的PopupWindow 是在Activity上层的。
所以即使弹出了PopupWindow,下层的Activity没有被遮盖的部分依然? ?有之前的所有 监听。 例如我上图中,的触摸滑动事件。??按钮事件 都依然存在。

为了能够像 AlertDialog那样,弹出后。下面的视图,显示为暗色,不能做任何操作。
设置 PopupWindow 布局为布满整个屏幕,? ?中间是并列的 5个按钮。 外围暗黑色的,其实是一个??半透明的背景。
将PopupWindow设置为整个屏幕大小, 外围半透明。效果与AlertDialog相当。

按这种思路 ,可以实现自己定义的按钮。 AlertDialog。??样式更灵活,修改起来也方便。

目前这个主题还没有回复,或许你可以帮楼主加盖一层?

在回复之前你需要先进行登录
电子邮件或昵称
密码
当前热门主题  有谁想学习利用ksoap2连接webService远程接口吗? ... 12 篇回复
© 2009 A Nanshapo Production   -   About
a site powered by Project Babel