说到图像处理,第一件事就是要从手机相册选择图片,然后才是处理。其实,用代码实现从手机相册选择一张图片其实非常简单:
添加一个Button,id设为btnOpen;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系统自带的分享功能是十分明智的选择。