zoukankan      html  css  js  c++  java
  • Android开发从系统图库中选择一张图片的方法

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

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

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

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

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

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

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

    Intent i = new Intent(  
    Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);  
       
    startActivityForResult(i, RESULT_LOAD_IMAGE);  

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

    步骤2:获取选中的图片

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

     1 @Override  
     2 protected void onActivityResult(int requestCode, int resultCode, 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。

    程序截图:

  • 相关阅读:
    假期总结三
    假期总结三
    假期总结三
    假期总结三
    Redis 在线管理工具(phpRedisAdmin)介绍 两次git
    Redis 在线管理工具(phpRedisAdmin)介绍 两次git
    Redis 在线管理工具(phpRedisAdmin)介绍 两次git
    Redis 在线管理工具(phpRedisAdmin)介绍 两次git
    进程
    C# exe文件 添加到windows 服务
  • 原文地址:https://www.cnblogs.com/whieenz/p/5265772.html
Copyright © 2011-2022 走看看