Android Studio实现读取本地相册文件并展示
目录
- 原文链接
- 效果
- 代码
- activity_main.xml
- MainActivity
原文链接
效果



代码
activity_main.xml
需要有一个按钮和image来展示图片
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><Buttonandroid:id="@+id/btn_2"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="选择图片"android:layout_gravity="center"android:textColor="@color/white"/><ImageViewandroid:id="@+id/iv_image"android:layout_width="match_parent"android:layout_gravity="center_horizontal"android:layout_height="wrap_content"/>
</LinearLayout>
MainActivity
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.provider.MediaStore;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;public class MainActivity extends AppCompatActivity {private Button btn_2;private ImageView iv_image;@Overridepublic void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);Log.e(this.getClass().getName(), "onCreate");setContentView(R.layout.activity_main);btn_2 = findViewById(R.id.btn_2);iv_image = findViewById(R.id.iv_image);btn_2.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Intent intent = new Intent(Intent.ACTION_PICK, null);//调用setDataAndType方法,指定了选择的数据类型为图片//设置数据的URI为MediaStore.Images.Media.EXTERNAL_CONTENT_URI,表示选择外部存储中的图片intent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, "image/*");//调用startActivityForResult方法,将Intent发送给系统,并指定一个请求码为2,以便在之后的回调中处理用户选择的图片startActivityForResult(intent, 2);}});}/*当启动的Activity返回结果时,会回调到onActivityResult方法中,其中的requestCode参数就是用于区分不同的请求的。在onActivityResult方法中,可以通过判断requestCode的值来确定是哪个请求返回的结果当requestCode等于2时,表示从相册选择图片的请求返回了结果。通过判断data是否为空,可以确定是否成功选择了一张图片。如果data不为空,则可以通过getData方法获取到选择的图片的URI,然后将该URI设置给ImageView控件来显示选择的图片*/@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);if (requestCode == 2) {// 从相册返回的数据Log.e(this.getClass().getName(), "Result:" + data.toString());if (data != null) {// 得到图片的全路径Uri uri = data.getData();iv_image.setImageURI(uri);Log.e(this.getClass().getName(), "Uri:" + String.valueOf(uri));}}}
}
相关文章:
Android Studio实现读取本地相册文件并展示
目录 原文链接效果 代码activity_main.xmlMainActivity 原文链接 效果 代码 activity_main.xml 需要有一个按钮和image来展示图片 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk…...
python的全局解释锁(GIL)
一、介绍 全局解释锁(Global Interpreter Lock,GIL)是在某些编程语言的解释器中使用的一种机制。在Python中,GIL是为了保证解释器线程安全而引入的。 GIL的作用是在解释器的执行过程中,确保同一时间只有一个线程可以…...
小程序swiper一个轮播显示一个半内容且实现无缝滚动
效果图: wxml(无缝滚动:circular"true"): <!--components/tool_version/tool_version.wxml--> <view class"tool-version"><swiper class"tool-version-swiper" circul…...
【自然语言处理】关系抽取 —— SimpleRE 讲解
SimpleRE 论文信息 标题:An Embarrassingly Simple Model for Dialogue Relation Extraction 作者:Fuzhao Xue 期刊:ICASSP 2022 发布时间与更新时间:2020.12.27 2022.01.25 主题:自然语言处理、关系抽取、对话场景、BERT arXiv:[2012.13873] An Embarrassingly Simple M…...
【O2O领域】Axure外卖订餐骑手端APP原型图,外卖众包配送原型设计图
作品概况 页面数量:共 110 页 兼容软件:Axure RP 9/10,不支持低版本 应用领域:外卖配送、生鲜配送 作品申明:页面内容仅用于功能演示,无实际功能 作品特色 本品为外卖订餐骑手端APP原型设计图&#x…...
DataGridView keydown事件无法在C#中工作
原因:单元格内编辑文本时,DataGridView keydown事件不起作用。每当单元格处于编辑模式时,其托管控件就会接收KeyDown事件而不是DataGridView包含它的父级.这就是为什么当单元格未处于编辑模式时(即使它被选中),键盘快捷键正常工作,因为DataGridView控件本身会收到Ke…...
【ElasticSearch】一键安装ElasticSearch与Kibana以及解决遇到的问题
目录 一、安装ES 二、安装Kibana 三、遇到的问题 一、安装ES 按顺序复制即可 docker network create es-net # 创建网络 docker pull images:7.12.1 # 拉取镜像 mkdir -p /root/es/data # 创建数据卷 mkdir -p /root/es/plugins # 创建数据卷 chmod 777 /root/es/** # 设置权…...
电商数据采集和数据分析
不管是做渠道价格的治理,还是做窜货、假货的打击,都需要品牌对线上数据尽数掌握,准确的数据是驱动服务的关键,所以做好电商数据的采集和分析非常重要。 当线上链接较多,品牌又需要监测线上数据时,单靠人工肯…...
react 11之 router6路由 (两种路由模式、两种路由跳转、两种传参与接收参数、嵌套路由,layout组件、路由懒加载)
目录 react路由1:安装和两种模式react路由2:两种路由跳转 ( 命令式与编程式)2-1 路由跳转-命令式2-2 路由跳转-编程式 - 函数组件2-2-1 app.jsx2-2-2 page / Home.jsx2-2-3 page / About.jsx2-2-4 效果 react路由3:函数…...
Golang 基础语法问答
使用值为 nil 的 slice、map 会发生什么? 允许对值为 nil 的 slice 添加元素,但是对值为 nil 的 map 添加元素时会造成运行时 panic。 // map错误示例 func main() {var m map[string]intm["one"] 1 // error: panic: assignment to entry …...
冠达管理:哪里查中报预增?
中报季行将到来,投资者开端重视公司的成绩体现。中报预增是投资者最关心的论题之一,因为这意味着公司未来成绩的增加潜力。但是,怎么查找中报预增的信息呢?本文将从多个视点分析这个问题。 1.证券交易所网站 证券交易所网站是投资…...
docker安装Oracle11gR2
文章目录 目录 文章目录 前言 一、前期准备 二、具体配置 2.1 配置oracle容器 2.2 配置navicat连接 总结 前言 使用docker模拟oracle环境 一、前期准备 安装好docker #拉取镜像 docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g #启动 docker run -…...
unity 之 Input.GetMouseButtonDown 的使用
文章目录 Input.GetMouseButtonDown Input.GetMouseButtonDown 当涉及到处理鼠标输入的时候,Input.GetMouseButtonDown 是一个常用的函数。它可以用来检测鼠标按键是否在特定帧被按下。下面我会详细介绍这个函数,并举两个例子说明如何使用它。 函数签名…...
链游再进化 Web3版CSGO来袭
过去几年,游戏开发者们一直希望借Web3这个价值流通网络,改造传统游戏的经济系统,将虚拟资产的掌管权交给用户,让资产自由地在市场流通。 Web3游戏发展史上,涌现过CryptoKitties、Axie Infinity两大爆款,但…...
WordPress用于您的企业网站的优点和缺点
如今,WordPress 被广泛认为是一个可靠、可扩展且安全的平台,能够为商业网站提供支持。然而,许多人质疑 WordPress 是否是适合企业的平台。 这就是我们创建本指南的原因。通过探索 WordPress 的优点和缺点,您可以确定世界上最受欢…...
~600行ANSI C代码实现RISC-V CPU核
今天在GitHub上看到一个C语言项目,用大约600行代码实现了一个RISC-V CPU核,甚为感叹,分享一下。不管是学习C,还是学习RISC-V,这个项目都有非常高的学习价值,开源万岁! rv 用 ANSI C 编写的RISC…...
【从零学习python 】55.Python中的序列化和反序列化,JSON与pickle模块的应用
文章目录 序列化和反序列化JSON模块pickle模块进阶案例 序列化和反序列化 通过文件操作,我们可以将字符串写入到一个本地文件。但是,如果是一个对象(例如列表、字典、元组等),就无法直接写入到一个文件里,需要对这个对象进行序列…...
【C++】详解内存中的堆和栈
2023年8月20日,周日早上 感觉很多东西还没吃透,很多疑问还没解决。 这篇文章可能会不定期更新。 还没解释为什么栈的空间有限,而堆的空间很大 还没解释栈和堆在内存中的位置 ...... 目录 怎么申请栈空间语法举例说明 怎么申请堆空间语法…...
QCustomPlot横坐标为毫秒级的时间轴数据展示的实时刷新数据功能
头文件 #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QTimer>QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACEclass Widget : public QWidget {Q_OBJECTpublic:Widget(QWidget *parent nullptr);~Widget();int realtime…...
STM32/AT32 MCO管脚输出时钟配置
前言:最近在学以太网通讯,发现RMII接口配置的时钟管脚有MCU自己输出,想要看看是怎么输出的,对此进行记录 1、交接项目项目上使用的是PA8管脚来输出时钟50MHZ,提供给上面refclk。 先看手册 PA8的复用功能具备将MCU时钟…...
ChatGPT 2026不是升级,是重构:Transformer-XL²架构、128K动态上下文、本地化模型热插拔——你还在用2023版?这5个信号说明你已被淘汰
更多请点击: https://intelliparadigm.com 第一章:ChatGPT 2026:一场从架构内核出发的范式革命 ChatGPT 2026 并非简单的能力叠加,而是以「动态稀疏混合专家(Dynamic Sparse MoE)」为核心重构推理路径&…...
从原理到实践:详解Livox激光雷达与相机外参标定的ROS实现
1. 为什么需要激光雷达与相机标定? 在自动驾驶和机器人领域,激光雷达和相机是最常用的两种传感器。激光雷达能提供精确的三维距离信息,而相机则能捕捉丰富的纹理和颜色信息。但要让这两种传感器真正发挥11>2的效果,就必须解决…...
面试官最爱问的FPGA亚稳态问题,我用这3个真实波形图给你讲透
FPGA亚稳态问题深度解析:从波形图到面试实战 在数字电路设计中,亚稳态(Metastability)是一个无法回避的核心问题。对于准备FPGA相关岗位面试的工程师来说,能否清晰解释亚稳态现象、分析其成因并提出解决方案࿰…...
解锁网络音视频传输:DistroAV插件从零构建高效工作流
解锁网络音视频传输:DistroAV插件从零构建高效工作流 【免费下载链接】obs-ndi DistroAV (formerly OBS-NDI): NDI integration for OBS Studio 项目地址: https://gitcode.com/gh_mirrors/ob/obs-ndi 在现代直播制作和视频协作场景中,跨设备高质…...
PyTorch Tensor运算的‘潜规则’:运算符重载(如a*b)与函数调用(torch.mul)到底选哪个?
PyTorch运算符重载与显式函数调用的工程实践指南 在PyTorch的日常开发中,我们经常面临一个看似简单却值得深思的选择:该用a b这样的运算符重载,还是显式调用torch.add(a, b)?这个选择不仅关乎代码风格,更影响着团队协…...
基于TEA加密的QQ号码逆向查询技术实现
基于TEA加密的QQ号码逆向查询技术实现 【免费下载链接】phone2qq 项目地址: https://gitcode.com/gh_mirrors/ph/phone2qq 在数字身份管理领域,用户经常面临忘记QQ号码但记得绑定手机号的情况。传统找回方式依赖官方验证流程,耗时较长且操作复杂…...
LLamaSharp实战指南:在.NET应用中本地部署与集成大语言模型
1. 项目概述:LLamaSharp,一个让大语言模型在本地跑起来的C#利器 如果你是一名C#或.NET开发者,最近肯定被ChatGPT和各种大语言模型(LLM)刷屏了。但你是否想过,不依赖OpenAI的API,不担心网络延迟…...
Kaggle竞赛提分利器:如何用Stacking融合XGBoost、LightGBM和CatBoost模型?
Kaggle竞赛进阶指南:Stacking融合三大梯度提升树的实战策略 在Kaggle竞赛中,当单一模型的性能触及天花板时,模型融合技术往往成为突破瓶颈的关键。不同于教科书式的理论讲解,本文将聚焦竞赛实战中的核心痛点——如何通过Stacking技…...
Kotlin原生AI Agent框架Koog:多平台、类型安全与生产级实践
1. 从零到一:为什么我们需要一个Kotlin原生的AI Agent框架?如果你是一个长期在JVM生态,特别是Kotlin世界里摸爬滚打的开发者,过去一年里,你肯定没少跟各种AI SDK打交道。无论是OpenAI的官方库,还是LangChai…...
Java基础全套教程(三)—— 控制语句、方法、递归算法
Java基础全套教程(三)—— 控制语句、方法、递归算法 本章是Java编程从基础语法走向逻辑编程的核心转折点。前面我们学习了变量、数据类型、运算符,只能实现简单的顺序执行代码。而真正的程序,需要具备判断能力、重复执行能力、代…...
