接口回调实现popwindow展示
来源:互联网 发布:et鼠标 知乎 编辑:程序博客网 时间:2024/06/18 12:58
常用的popwindow类,通过接口调用,下面是工具类的部分
public class AddPictureWindow implements OnClickListener { private PopupWindow mPop;// 窗口 private Context mContext;// 上下文 private TextView tvPhoto, tvAlbum, tvCancel;// 拍照,相册, 取消 public AddPictureWindow(Context mContext) { this.mContext = mContext; initView(); } /** * 初始化组件 */ private void initView() { View view = LayoutInflater.from(mContext).inflate(R.layout.view_add_picture, null); mPop = new PopupWindow(view, LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT); tvPhoto = (TextView) view.findViewById(R.id.tv_add_picture_photograph); tvAlbum = (TextView) view.findViewById(R.id.tv_add_picture_album); tvCancel = (TextView) view.findViewById(R.id.tv_add_picture_cancel); // ColorDrawable colorDrawable = new ColorDrawable(-0000); mPop.setBackgroundDrawable(colorDrawable); mPop.setOutsideTouchable(true); mPop.setFocusable(true); mPop.setAnimationStyle(R.style.addPicturePopupWindowAnimation); // tvPhoto.setOnClickListener(this); tvAlbum.setOnClickListener(this); tvCancel.setOnClickListener(this); } /** * 按键监听 */ @Override public void onClick(View v) { switch (v.getId()) { case R.id.tv_add_picture_photograph:// 照相 if (pictureClick != null) { pictureClick.onPictureClick(v, 0); } dismissWindow(); break; case R.id.tv_add_picture_album:// 相册 if (pictureClick != null) { pictureClick.onPictureClick(v, 1); } dismissWindow(); break; case R.id.tv_add_picture_cancel:// 取消 dismissWindow(); break; } } /** * 确定按键监听 * * @param l */ public void setOnPictureClickListener(OnPictureClickListener d) { this.pictureClick = d; } // 接口引用 OnPictureClickListener pictureClick; /** * 确定按键回调接口 * * @author ZhangXuanChen * @created 2013-7-21 */ public interface OnPictureClickListener { void onPictureClick(View v, int what); } /** * 显示窗口 */ public void showWindow(View v) { if (mPop != null) { if (mPop.isShowing()) { mPop.dismiss(); } else { mPop.showAtLocation(v, Gravity.BOTTOM, 0, 0); } } } /** * 关闭窗口 */ public void dismissWindow() { if (mPop != null) { if (mPop.isShowing()) { mPop.dismiss(); } } }}
代码中通过工具类对外提供的接口调用,通过继承接口实现onPictureClick方法,代码如下
public void onPictureClick(View v, int what) { switch (what) { case 0:// 拍照 Intent picture = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); picture.putExtra(MediaStore.EXTRA_OUTPUT, mImageUri); startActivityForResult(picture, ClientConstant.REQUEST_CODE_TAKE_PHOTO); break; case 1:// 相册 Intent album = new Intent(Intent.ACTION_PICK, null); album.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, "image/*"); startActivityForResult(album, ClientConstant.REQUEST_CODE_PHOTO_ALBUM); break; } }
对popwindow的声明、设置监听也是必不可少的部分
AddPictureWindow mAddPictureWindow;// 添加拍照windowmAddPictureWindow = new AddPictureWindow(this);初始化popwindow/** * popwindow按键监听 */mAddPictureWindow.setOnPictureClickListener(this);
通过点击事件触发弹出popwindow
/** * 按键监听 */ @Override public void onClick(View v) { switch (v.getId()) { case R.id.iv_dialogue_addPicture:// 选择图片 if (mAddPictureWindow != null) { mAddPictureWindow.showWindow(v); } break; } }
0 0
- 接口回调实现popwindow展示
- Android接口回调总结,以及运用到弹窗PopWindow的Demo实现
- PopWindow实现
- PopWindow实现自定义Menu
- popwindow实现下拉菜单
- PopWindow的实现功能
- android-PopWindow简单实现
- react-native实现popwindow
- android popwindow 实现下拉菜单
- popwindow动画效果的实现
- setAnimationStyle实现的popwindow…
- popwindow实现弹窗效果
- PopWindow实现二级联动菜单
- PopWindow实现二级联动菜单
- Android popwindow 实现自定义数字键盘
- popwindow实现listview对应删除
- 实现接口回调
- POPwindow
- Javascript跨域访问解决方案
- win8.1 64位+VS2013搭建OpenGL环境
- 什么是Http协议
- squid 身份认证
- Introduction into Android Development
- 接口回调实现popwindow展示
- C++template元编程学习心得-switch结构
- cache_peer和cache_peer_domain详解
- Javascript 与正则表达式
- glib g_main_loop理解
- 验证身份证号码
- RMAN Recovery Catalog(恢复目录)
- hdu 5265 pog loves szh II
- 微信公众号第三方平台全网发布测试程序