自己定义popupwindow二三事
2024-09-08 02:08:19
效果图:
代码:
public class ViewActivity extends Activity implements View.OnClickListener {
PopupWindow popWindow;
LinearLayout rootView;
@Override
protected void onCreate(Bundle savedInstanceState) {
requestWindowFeature(Window.FEATURE_NO_TITLE);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_view);
rootView = (LinearLayout) findViewById(R.id.ll_rootview);
initPopWindow(this);
}
@Override
public void onClick(View v) {
popWindow.showAtLocation(rootView, Gravity.CENTER, 0, 0);
}
public void initPopWindow(Context context) {
View view = LayoutInflater.from(context).inflate(R.layout.view_share, null);
popWindow = new PopupWindow(view, RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT, true);
ImageView iv_cancel = (ImageView) view.findViewById(R.id.iv_cancel);
iv_cancel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
popWindow.dismiss();
}
});
//给popupwindow设置返回键监听
popWindow.getContentView().setFocusableInTouchMode(true);
popWindow.getContentView().setFocusable(true);
popWindow.getContentView().setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_DOWN && keyCode == KeyEvent.KEYCODE_BACK) {
if (popWindow != null && popWindow.isShowing()) {
popWindow.dismiss();
}
return true;
}
return false;
}
});
}
}
背景是否为灰色:
//直接在view_share的根布局设置背景颜色就能够
android:background="#aa666666"
最新文章
- Easyui datagrid 显示隐藏列
- b/s 读取多个FTP文件(图片,视频)压缩到服务器 下载到客户端
- linux基础-第十五单元 软件包的管理
- HTML5时代的Web缓存机制
- Google protobuf
- For Microsoft Azure Network VNET to VNET Connection
- eclipse 或MyEclipse将工程进行移动的时候会对@Override报错的处理方法
- openStack icehouse for centos6.4 production Env 实战
- hdu 1671 Phone List(字典树)
- Misha and Palindrome Degree
- CentOS 6.5 安装Suricata(with PF_RING &; CUDA)
- random seed()函数
- 【TCP/IP 协议】 TCP/IP 基础
- Jenkins-权限管理
- Go的并发调度原理
- 使用keras的LSTM进行预测----实战练习
- BUGList
- Docker启动一个Centos镜像
- Linux 字符设备驱动及一些简单的Linux知识
- Android SDK代理服务器解决国内不能更新下载问题
热门文章
- 洛谷——2722总分 Score Inflation
- Find the Duplicate Number -- LeetCode
- UITableView的HeaderView和FooterView
- 单核时代,PHP之类多线程或者多进程的,是怎么处理并发的?是排队吗?
- jquery $(document).ready() 与js原生的window.onload的区别总结
- apache 的rewrite函数配置伪静态
- 深入理解dataset及其用法
- oracle find blocking session
- 2017.3.31 spring mvc教程(五)Action的单元测试
- rpc接口mock平台