刚开始学习OpenCv4Android编程,做了个小demo。

就是一个主界面上添加一个ImageView 两个Button控件。

一个Button用来从系统相册选择一张照片;

另一个Button是用来完成灰度化的功能;

在开发过程中遇到Android从系统图库中选择一张图片的问题,查阅了一些资料我将自己的办法贴在下面。

步骤1:编写重定向到图片库的代码

我们需要写一些Java代码来处理按钮的点击事件,而重定向到图片库的代码如下:

Intent i = newIntent(

Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);

startActivityForResult(i, RESULT_LOAD_IMAGE);

注意:这里的RESULT_LOAD_IMAGE是一个整形常量需要传到startActivityForResult()方法。

步骤2:获取选中的图片

一旦选择了一张图片,onActivityResult()方法将会被调用。我们需要处理这个方法得到的数据,代码如下:

1 @Override2 protected void onActivityResult(int requestCode, intresultCode, Intent data) {3 super.onActivityResult(requestCode, resultCode, data);4

5 if (requestCode == RESULT_LOAD_IMAGE && resultCode == RESULT_OK && null !=data) {6 Uri selectedImage =data.getData();7 String[] filePathColumn ={ MediaStore.Images.Media.DATA };8

9 Cursor cursor =getContentResolver().query(selectedImage,10 filePathColumn, null, null, null);11 cursor.moveToFirst();12 13 int columnIndex = cursor.getColumnIndex(filePathColumn[0]);14 String picturePath =cursor.getString(columnIndex);15 cursor.close();16 }

注意:onActivityResult()方法只有当图片被选中后才会调用。在这个方法中,我们需要检查requestCode是否是我们之前传给startActivityForResult()方法的RESULT_LOAD_IMAGE。

程序截图:

ffb1c812565841bebd1e9d1a4fc8764c.png

bf5e8e5c6389bb0ee77be7dac2abb0de.png

4a5eb269218368ed5b663dfc2dab016a.png

原文:http://www.cnblogs.com/whieenz/p/5265772.html

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐