如何访问手机照片库中的图像?

2024-02-03

顺便问一下,有人知道如何访问手机的照片库吗? 我正在制作一个应用程序来拍摄植物叶子的照片 分析图像以确定其是否已确定。我们希望我们 可以为用户提供两种选择:拍摄叶子的照片或使用植物的图像 用户已经拿走的叶子。然而,我们拍了照片,但我们没有 知道如何访问照片库。


您必须使用内置的启动图库应用程序Intents。之后,在您的onActivityResult(),获取所选图像的路径并将图像加载到您的ImageView

main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:orientation="vertical"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent"
 >
<TextView
 android:layout_width="fill_parent"
 android:layout_height="wrap_content"
 android:text="@string/hello"
 />
<Button
 android:id="@+id/loadimage"
 android:layout_width="fill_parent"
 android:layout_height="wrap_content"
 android:text="Load Image"
 />
<TextView
 android:id="@+id/targeturi"
 android:layout_width="fill_parent"
 android:layout_height="wrap_content"
 />
<ImageView
 android:id="@+id/targetimage"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent"
 />
</LinearLayout>

您的活动

 package com.exercise.AndroidSelectImage;

    import java.io.FileNotFoundException;

    import android.app.Activity;
    import android.content.Intent;
    import android.graphics.Bitmap;
    import android.graphics.BitmapFactory;
    import android.net.Uri;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    import android.widget.ImageView;
    import android.widget.TextView;

    public class AndroidSelectImage extends Activity {

    TextView textTargetUri;
    ImageView targetImage;

     /** Called when the activity is first created. */
     @Override
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.main);
         Button buttonLoadImage = (Button)findViewById(R.id.loadimage);
         textTargetUri = (TextView)findViewById(R.id.targeturi);
         targetImage = (ImageView)findViewById(R.id.targetimage);

         buttonLoadImage.setOnClickListener(new Button.OnClickListener(){

     @Override
     public void onClick(View arg0) {
      // TODO Auto-generated method stub
      Intent intent = new Intent(Intent.ACTION_PICK,
        android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
      startActivityForResult(intent, 0);
     }});
     }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    // TODO Auto-generated method stub
    super.onActivityResult(requestCode, resultCode, data);

    if (resultCode == RESULT_OK){
     Uri targetUri = data.getData();
     textTargetUri.setText(targetUri.toString());
     Bitmap bitmap;
     try {
      bitmap = BitmapFactory.decodeStream(getContentResolver().openInputStream(targetUri));
      targetImage.setImageBitmap(bitmap);
     } catch (FileNotFoundException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
     }
    }
    }
    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何访问手机照片库中的图像? 的相关文章

随机推荐

  • Angular 2:在本地 .json 文件中找不到文件

    我看过一些不同的帖子 内容是无法找到本地文件来打开它们 无论它们是图像还是数据文件 但没有一个解决方案对我有用 我的猜测是我缺少一些配置 我正在查找的文件位于名为 data 的文件夹中 与我的 app html 和 app ts 文件位于同
  • 在 VS2012 中使用 'volatile' 关键字的最佳实践

    自从将我们的开发和构建环境从 VS2008 升级到 VS2012 以来 我对使用volatile我们的遗留代码库中的关键字 它非常广泛 因为有很多复制的模式用于管理 旧 时代的线程 微软在VS2012文档中有如下备注 如果您熟悉 C vol
  • 编译错误:只有在公共对象模块中定义的用户定义类型可以强制转换为变体或从变体强制转换或传递给后期绑定函数

    我正在努力学习一些 VBa 和 Excel 我需要在 VBa 中创建一个结构 它是Type 我遇到的问题是 当我尝试执行代码时收到一条错误消息 我觉得我需要解释一下我是如何到达现在的位置的 以防我犯了错误 我读过要创建一个类型 它需要公开
  • lang=unknown 属性有效吗?

    给定一个特定语言 英语 的 HTML 文档 我在标签上定义了一个 lang 属性 页面中的某些文本是用另一种语言编写的 例如法语 span blabla span 但是 如果我无法识别语言 但我知道它不是英语 我可以将 未知 设置为 lan
  • 从已安装的 rpm 重新打包 rpm

    在 Linux 上我们可以重新打包已安装的 rpm 如果可以的话如何 我记得可以从已安装的二进制文件生成 rpm rpm gt my rpm 另外 即较新的 rpm 应该在不同的机器上工作 还有rpmrebuildhttp rpmrebui
  • C++ 的 OpenGL 实现列表

    我只是将我的项目从 Visual Studio 迁移到 Eclipse 这样我就可以为 Linux 构建它们 但我遇到了 OpenGL 库文件的问题 Visual Studio 附带了 Microsoft 的库和头文件 用于在项目中包含 O
  • SQL - 多个条件where子句同一列

    我有一个看起来有点像这样的数据集 Subject ID Diagnosis ID 001 299 001 288 001 233 001 299 002 299 002 233 003 238 004 299 004 233 我想创建一个新
  • Vagrant::Errors::NetworkCollision:指定的主机网络与非主机网络发生冲突

    我在多台机器上使用 vagrant 它曾经正常工作 但后来它就不再工作了 我在 Vagrantfile 中定义网络的部分 config vm define app do layer layer vm provision chef solo
  • 在运行时将数据分配给四维数组

    我有一个四维数组 其中有一组静态值 但我的问题是我想从 api 获取一些数据并且必须将其放入四维数组中运行时期间 我不知道该怎么做 任何最轻微的想法将不胜感激 这是我的示例 显示了我的四维数组的静态定义 static final Strin
  • Allure报告:Chrome中没有显示任何内容

    我正在尝试使用Allure框架 https github com allure framework allure core为我生成一份报告硒网络驱动程序 http docs seleniumhq org projects webdriver
  • 重新启用 iPhone 模拟器位置服务

    我在模拟器上禁用了位置服务 并设置了 不再询问 选项 以为我可以稍后重新启用它 但现在我不知道如何操作 有人可以指出我在哪里更改此设置吗 Thanks 解决方案 系统偏好设置 gt 安全 gt 按钮 重置警告 您可能需要先单击左下角的锁 然
  • 在android中实现带有分区分隔符的列表

    嗨 我如何实现一个带有部分分隔符的列表 就像android上的那样构建块列表 http developer android com design building blocks lists html 您能指出任何文章或教程来实现这一目标吗
  • git克隆https/ssl错误[重复]

    这个问题在这里已经有答案了 我已经在我的 git 服务器中安装了 ssl 证书和密钥 但是当我尝试从 mysysgit 通过 https 克隆时出现错误 早些时候 它在 http 上工作得很好 无法确定问题出在哪里 git clone ht
  • Angular-cli 测试覆盖所有文件

    我正在运行以下命令来进行单元测试并生成代码代码覆盖率报告 ng test code coverage 它正在覆盖率文件夹中写入代码覆盖率报告 我需要查看整个项目的覆盖范围 而不仅仅是进行测试的文件 karma conf js module
  • 如何对 Python 字典执行集合运算?

    虽然能够在字典的键之间执行集合操作非常有用 但我经常希望可以对字典本身执行集合操作 我找到了一些服用食谱两个词典的区别 http code activestate com recipes 576644 diff two dictionari
  • 使用 Python 的 ElementTree 查找顶级 xml 注释

    我正在使用 Python 的 ElementTree 解析 xml 文件 如下所示 et ElementTree file file test xml test xml 以几行 xml 注释开头 有没有办法从 et 那里得到这些评论 对于
  • 如何获取 IOrderedQueryable 中项目的索引?

    背景 我正在设计一个类似列表的控件 WinForms 它由DbSet 一个主要要求是它doesn t将整个列表加载到本地内存中 我正在使用一个DataGridView在虚拟模式下作为底层 UI 我正计划实施CellValueNeeded充当
  • ASP.NET MVC - 部分视图可以有控制器吗?

    当我在视图中调用时 Html RenderPartial MyPartialView MyObject 我可以设置它以便该部分视图有一个在调用 RenderPartial 时调用的控制器吗 使用可能会更好渲染动作 http msdn mic
  • 使用 在从 XSL FO 生成的 PDF 中插入换行符

    我正在使用 XSL FO 生成一个包含信息表的 PDF 文件 其中一列是 描述 列 我填充这些描述字段之一的字符串示例如下 This is an example Description br List item 1 br List item
  • 如何访问手机照片库中的图像?

    顺便问一下 有人知道如何访问手机的照片库吗 我正在制作一个应用程序来拍摄植物叶子的照片 分析图像以确定其是否已确定 我们希望我们 可以为用户提供两种选择 拍摄叶子的照片或使用植物的图像 用户已经拿走的叶子 然而 我们拍了照片 但我们没有 知