频道栏目
首页 > 资讯 > Android > 正文

【Android图像处理】从相册选择一张图片并分享

16-11-18        来源:[db:作者]  
收藏   我要投稿

说到图像处理,第一件事就是要从手机相册选择图片,然后才是处理。其实,用代码实现从手机相册选择一张图片其实非常简单:

添加一个Button,id设为btnOpen;
对该Button设置OnClickListener();OnClickListener方法中startActivityForResult,跳转到选择图片的界面并带回结果;实现onActivityResult()方法;

startActivityForResult方法如下:

 

//打开相册按钮事件侦听器
		btnOpen.setOnClickListener(new OnClickListener() {
			public void onClick(View v) {
				//跳转到选择图片界面
				startActivityForResult(new Intent("android.intent.action.PICK",
						MediaStore.Images.Media.EXTERNAL_CONTENT_URI), REQUEST_GET_PHOTO); 

				Log.d("ee", "Image path: " + ImgPath);
			}
		});
onActivityResult方法如下:

 

 

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
		if (resultCode == RESULT_OK) {
			switch (requestCode) {
			case REQUEST_GET_PHOTO: {
				if (data != null) {
					Uri uri = data.getData();
					Log.e("uri", uri.toString());
					ContentResolver cr = this.getContentResolver();
					try {
						curBitmap = BitmapFactory.decodeStream(cr.openInputStream(uri));

						ImageView imageView = (ImageView) findViewById(R.id.imageView);
						imageView.setImageBitmap(curBitmap);

						String[] filePathColumn = {MediaStore.Images.Media.DATA};

						Cursor cursor = getContentResolver().query(uri, filePathColumn, null, null, null);
						cursor.moveToFirst();
						int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
						ImgPath = cursor.getString(columnIndex);
						Log.e("Exception", ImgPath);
					} catch (FileNotFoundException e) {
						Log.e("Exception", e.getMessage(), e);
					}
				}
				break;
			}
			}
		}
	}
运行程序,点击按钮,选择对应的图片,结果如下:

 

同时要实现分享功能也是很简单的:

再添加一个Button,id为btnShare;实现btnShare的OnClickListener方法,在其中调用分享图片的方法;实现分享图片的方法;

OnClickListener()方法如下:

 

btnShare.setOnClickListener(new OnClickListener() {
			public void onClick(View v) {
				//分享图片
				shareSingleImage(v,ImgPath);
			}
		});
其中shareSingleImage方法如下:

 

 

	/**
	 * 分享单张图片
	 * 
	 * @param view
	 * @param imagePath  图片路径
	 */
	public void shareSingleImage(View view, String imagePath) {
		Uri imageUri = Uri.fromFile(new File(imagePath));
		Log.d("share", "uri:" + imageUri);

		Intent shareIntent = new Intent();
		shareIntent.setAction(Intent.ACTION_SEND);
		shareIntent.putExtra(Intent.EXTRA_STREAM, imageUri);
		shareIntent.setType("image/*");
		//跳转到分享界面   设置分享标题
		startActivity(Intent.createChooser(shareIntent, "分享到"));
	}    
接下来点击分享按钮,会出现如下界面:

 

总结:选择图片并且分享很简单。现在也有专门的sdk,例如:微信开发者平台,QQ开发者平台...,但是这些开发平台都需要去注册并且需要通过审核,一般来说,不同的平台审核的时间有所不同,可能会需要一个星期左右,因此采用Android系统自带的分享功能是十分明智的选择。

相关TAG标签
上一篇:javac不是内部或外部命令,也不是可运行的程序 - 情况二
下一篇:UGUI提高(四) 异步加载场景进度条
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站