首页 > 代码库 > dialog类中如何打开系统图库使用图片

dialog类中如何打开系统图库使用图片

============问题描述============


小弟的项目是一个jar包,里面有dialog写的页面,想在页面上打开系统图库。

如果是Activity中,可以
startActivityForResult(new Intent(....),1);


求助,dialog中,要如何实现啊。

============解决方案1============


你可以使用 getContext().startActivity()啊,一样的,对不对,你获取对应的 Context 对象使用就好了

============解决方案2============


我在项目中是这么做的
自定义dialog,添加回调接口,在Activity中设置监听方法,实现跳转
private OnOptionClickListener optionClickListener = new OnOptionClickListener() {
			@Override
			public void onOptionClick(PopuDialog dialog, int position) {
				// TODO Auto-generated method stub
				if(position == 0){//拍照
					Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
		            startActivityForResult(intent, REQUESTCODE_TAKEPHOTO); 
				}else if(position == 1){//图库中选择
					Intent intent = new Intent();  
	                /* 开启Pictures画面Type设定为image */  
	                intent.setType("image/*");  
	                /* 使用Intent.ACTION_GET_CONTENT这个Action */  
	                intent.setAction(Intent.ACTION_GET_CONTENT);   
	                /* 取得相片后返回本画面 */  
	                startActivityForResult(intent, REQUESTCODE_SELECTPHOTO);  
				}
			}
		};

看对你有没有帮助

============解决方案3============


楼上正解,可以通过 startActivityForResult 获取到一个返回信息,然后你在自己的Fragment类里重写 

onActivityResult,然后就可以从返回的 Bundle 中获取到数据了,记得可以通过

Bitmap bmp = (Bitmap) bundle.getSerilizable("data");

从而得到选中的图片,当然这个跟你打开的图片选中 Activity 有关

dialog类中如何打开系统图库使用图片