首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

重新进入应用程序后将上次选择的图像加载到ImageView中

,可以通过以下步骤实现:

  1. 首先,需要在应用程序中保存上次选择的图像。可以使用SharedPreferences或者数据库来存储图像的路径或者字节流数据。
  2. 在应用程序的入口处(例如MainActivity的onCreate方法),读取保存的图像数据并加载到ImageView中。具体的实现方式取决于图像数据的存储方式。
  3. 如果图像数据是以路径的形式保存的,可以使用BitmapFactory类的decodeFile方法将图像文件解码为Bitmap对象,然后将Bitmap对象设置给ImageView。
  4. 示例代码:
  5. 示例代码:
  6. 如果图像数据是以字节流的形式保存的,可以使用BitmapFactory类的decodeByteArray方法将字节流解码为Bitmap对象,然后将Bitmap对象设置给ImageView。
  7. 示例代码:
  8. 示例代码:

需要注意的是,上述代码中的"lastSelectedImage"是保存图像数据的键名,可以根据实际情况进行修改。

此外,为了提高应用程序的性能和用户体验,可以考虑使用异步加载图像的方式,例如使用AsyncTask或者第三方库如Picasso、Glide等来加载图像。这样可以避免在主线程中进行耗时的图像加载操作,保持应用程序的响应性。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Android训练课程(Android Training) - 高效的显示图片

读取缩放后的图像到内存 现在我们知道了图像的尺寸,他们可被用于决定是否使用完整的图像加载到内存或者采用缩略图加载到内存。...这节课将引导你,当加载多个图像时,使用一个内存和磁盘图像缓存来提高UI的响应性和流畅性。 使用一个内存缓存 一个内存缓存提供了快速访问位图的方式,更好的占用珍贵的应用程序内存。...为了选择一个合适的LruCache 的尺寸,一些因素必须要考虑到,比如: 你的剩余的activity或者应用程序 是如何 集中 你的内存的?...当图像处理完成后,最后的图片被添加到内存缓存和磁盘缓存中。...在activity被重新创建后,这个重新创建的(保留的)的 Fragment 被重新附加,这样你重新通过它获得到缓存对象,允许图像被快速提取和重新填充到 ImageView 对象。

2.9K00

android加载大图,防止oom

压缩后的图片大小应该和用来展示它的控件大小相近,在一个很小的ImageView上显示一张超大的图片不会带来任何视觉上的好处,但却会占用我们相当多宝贵的内存,而且在性能上还可能会带来负面影响。...现在图片的大小已经知道了,我们就可以决定是把整张图片加载到内存中还是加载一个压缩版的图片到内存中。以下几个因素是我们需要考虑的: 预估一下加载整张图片所需占用的内存。...比如,你的ImageView只有128*96像素的大小,只是为了显示一张缩略图,这时候把一张1024*768像素的图片完全加载到内存中显然是不值得的。 那我们怎样才能对图片进行压缩呢?...然后将BitmapFactory.Options连同期望的宽度和高度一起传递到到calculateInSampleSize方法中,就可以得到合适的inSampleSize值了。...为了能够选择一个合适的缓存大小给LruCache, 有以下多个因素应该放入考虑范围内,例如: 你的设备可以为每个应用程序分配多大的内存? 设备屏幕上一次最多能显示多少张图片?

1.3K90
  • Android高效加载大图、多图解决方案,有效避免程序OOM

    压缩后的图片大小应该和用来展示它的控件大小相近,在一个很小的ImageView上显示一张超大的图片不会带来任何视觉上的好处,但却会占用我们相当多宝贵的内存,而且在性能上还可能会带来负面影响。...现在图片的大小已经知道了,我们就可以决定是把整张图片加载到内存中还是加载一个压缩版的图片到内存中。以下几个因素是我们需要考虑的: 预估一下加载整张图片所需占用的内存。...比如,你的ImageView只有128*96像素的大小,只是为了显示一张缩略图,这时候把一张1024*768像素的图片完全加载到内存中显然是不值得的。 那我们怎样才能对图片进行压缩呢?...然后将BitmapFactory.Options连同期望的宽度和高度一起传递到到calculateInSampleSize方法中,就可以得到合适的inSampleSize值了。...为了能够选择一个合适的缓存大小给LruCache, 有以下多个因素应该放入考虑范围内,例如: 你的设备可以为每个应用程序分配多大的内存? 设备屏幕上一次最多能显示多少张图片?

    2.4K70

    Swift-图像的性能优化

    前言 随着移动端的发展,现在越来越注重性能优化了。这篇文章将谈一谈对于图片的性能优化。...面试中又会经常有这样的问题:如何实现一个图像的圆角,不要用cornerRadius ---- 模拟器常用性能测试工具 Color Blended Layers(混合图层->检测图像的混合模式) 此功能基于渲染程度对屏幕中的混合区域进行绿...如果图片显示在一个Cell上面,滚出屏幕再滚动回来的时候,图片仍然需要重新被设置,在进入屏幕之前还需要一次拉伸操作,这些拉伸的操作是会消耗CPU的计算的。这样的设置多了以后就会严重影响性能。...将ImageView的尺寸设置成和图片一样大小,再利用模拟器Color Misaligned Images功能再次查看图片状态。...给图像添加边框,绘制内切的圆形 UIColor.darkGray.setStroke() path.lineWidth = 5 // 默认是'1' path.stroke() 判断一个应用程序的好坏

    1.7K70

    glide 一个强大的图片加载框架

    也就是说我们选择的范围非常广,不管是在 Activity 还是 Fragment 中调用 with() 方法,都可以直接传 this。...如果传入的是 ApplicationContext,那么只有当应用程序被杀掉的时候,图片加载才会停止 2、load() 这个方法用于指定待加载的图片资源。...当然,into() 方法并不仅仅只能接收 ImageView 类型的参数,还支持很多更丰富的用法 四、glide 常用的方法 方法名 功能 placeholder() 在图片的加载过程中,我们先显示一张临时的图片...、DiskCacheStrategy.RESULT:仅仅缓存最终的图像 DiskCacheStrategy.ALL:缓存所有版本的图像(默认行为) error() 当我们因为某些异常情况导致图片加载失败...glide 从来不会直接将图片的完整尺寸全部加载到内存中,而是用多少加载多少,如果我们真的有指定图片大小这种需求的话,调用 override() 方法就好了 以上便是本文的全部文章,具体的代码我已经上传到

    41140

    Android瀑布流照片墙实现,体验不规则排列的美感

    每当需要添加一张图片时,会将这张图片的宽度压缩成和列一样宽,再按照同样的压缩比例对图片的高度进行压缩,然后在这三列中找出当前高度最小的一列,将图片添加到这一列中。...下面我们就来开始实现吧,新建一个Android项目,起名叫PhotoWallFallsDemo,并选择4.0的API。 第一个要考虑的问题是,我们到哪儿去收集这些大小参差不齐的图片呢?...); return thirdColumn; } } /** * 将图片下载到SD卡缓存起来。...接着将这张图按照一定的比例进行压缩,并找出当前高度最小的一列,把压缩后的图片添加进去就可以了。...当这些图片又重新变为可见的时候,只需要再从LruCache中将这些图片重新取出即可。如果某张图片已经从LruCache中被移除了,就会开启一个LoadImageTask,将这张图片重新加载到内存中。

    2.9K50

    Android图片加载框架最全解析(一),Glide的基本用法

    也就是说我们选择的范围非常广,不管是在Activity还是Fragment中调用with()方法,都可以直接传this。那如果调用的地方既不在Activity中也不在Fragment中呢?...关于Glide缓存方面的内容我们将会在后面的文章进行详细的讲解,这里只是为了测试占位图功能而加的一个额外配置,暂时你只需要知道禁用缓存必须这么写就可以了。 现在重新运行一下代码,效果如下图所示: ?...现在你可以将图片的url地址修改成一个不存在的图片地址,或者干脆直接将手机的网络给关了,然后重新运行程序,效果如下图所示: ? 这样我们就把Glide提供的占位图功能都掌握了。...而使用Glide,我们就完全不用担心图片内存浪费,甚至是内存溢出的问题。因为Glide从来都不会直接将图片的完整尺寸全部加载到内存中,而是用多少加载多少。...Glide会自动判断ImageView的大小,然后只将这么大的图片像素加载到内存当中,帮助我们节省内存开支。

    2.2K110

    Android多点触控技术实战,自由地对图片进行缩放和移动

    ; /** * 记录上次两指之间的距离 */ private double lastFingerDis; /** * ZoomImageView构造函数,将当前操作状态设为STATUS_INIT...那我们就来看一下initBitmap()方法,在这个方法中首先对图片的大小进行了判断,如果图片的宽和高都是小于屏幕的宽和高的,则直接将这张图片进行偏移,让它能够居中显示在屏幕上。...然后invalidate一下当前的view,又会进入到onDraw()方法中,这里判断出当前是移动状态,于是会调用move()方法。...,然后又通过Intent得到了需要展示的图片路径,接着使用BitmapFactory将路径下的图片加载到内存中,然后调用ZoomImageView的setImageBitmap()方法将图片传入,就可以让这张图片展示出来了...,点击任意一张图片会进入到相应的大图界面,并且可以通过多点触控的方式对图片进行缩放,放大后还可以通过单指来移动图片,如下图所示。

    2.3K50

    Glide-图片加载框架全解(一)- 基本用法

    也就是说我们选择的范围非常广,不管是在Activity还是Fragment中调用with()方法,都可以直接传this。那如果调用的地方既不在Activity中也不在Fragment中呢?...我们只是在刚才的三步走之间插入了一个placeholder()方法,然后将占位图片的资源id传入到这个方法中即可。...现在你可以将图片的url地址修改成一个不存在的图片地址,或者干脆直接将手机的网络给关了,然后重新运行程序,效果如下图所示: 这样我们就把Glide提供的占位图功能都掌握了。...而使用Glide,我们就完全不用担心图片内存浪费,甚至是内存溢出的问题。因为Glide从来都不会直接将图片的完整尺寸全部加载到内存中,而是用多少加载多少。...Glide会自动判断ImageView的大小,然后只将这么大的图片像素加载到内存当中,帮助我们节省内存开支。

    1.1K10

    YYImage框架瞧一瞧

    a、animatedImageMemorySize 如果所有帧图像都被加载到内存中,那么总内存使用(以字节为单位)。 如果图像不是从多帧图像数据创建的,则该值为0。...如果图像被许多图像视图(如emoticon)共享,则预加载所有视图 帧将降低CPU成本。 YYAnimatedImageView 类 用于显示动画图像的图像视图。...因此,在将磁盘中的图片渲染到屏幕之前,必须先要得到图片的原始像素数据,才能执行后续的绘制操作,这就是为什么需要对图片解码的原因。...:image]; //把图片添加到 UIImageView 的子类,这个子类后面讲(第7点后都是它的核心),这里暂且当它为普通 ImageView 那样看。...,这个视图将请求并解码一些或所有未来的帧图像进入一个内部缓冲区。

    2.1K30

    iOS的GIF动画效果实现

    该方法有三个参数,参数1为GIF原始数据,参数2 为GIF子帧中的序号(该序号从0开始),参数3为GIF数据提取的一些选择参数,因为这里不是很常用,所以设置为nil。...3 GIF图片分解最终实现效果 通过上述代码中的最后一行print("\(imagePath)")可以获取图片最终保存的路径。进入该路径下可以看到下图所示的图片最终分解结果。...代码第1行初始化可变数组,第2行遍历67张本地图片,第3行按照图片的命名规律,构建67张图片名称,第4行加载本地图片。最后一行将读取的图片依次加载到images可变数组中。...5 images.append(image)// 将图片添加到数组中 } 6 let imageView = UIImageView() 7 imageView.frame = self.view.bounds...第2行到第5行通过for循环将67张图片依次加载到当前数组中。第6行实例化一个UIImageView实例对象。

    1.3K20

    在Android中高效的加载大图

    原文地址:ronaldong 原文作者: https://juejin.im/post/5b0e6e6a5188251570336972 将大图加载到内存中总是令人痛苦,因为我们经常会在应用的崩溃报告中看到...大家都知道,Android系统的内存有限。我们必须牢记这一点。 stackoverflow上有很多关于大图加载的问题,当你的应用程序遇到OOM的时候,你可以选择直接复制粘贴其中的答案来解决这个问题。...将图片加载到内存中 这很简单。你只需要使用BitmapFactory来解码你的图片。...原因如下: 存储在磁盘上的图片是被压缩过的(以JPG,PNG或类似的格式存储)。 一旦将图片加载到内存中,它就不再被压缩,并占用尽可能多的图片的所有像素所需的内存空间。...加载大图的步骤 获取图片的宽和高 根据图片的宽和高计算缩放比 根据缩放比将图片加载到内存中。 BitmapFactory.Options BitmapFactory可以为我们提供图片的元数据。

    82820

    android图片加载库Glide

    默认的Bitmap格式是RGB_565 一下是Picasso和Glide加载后的结果(1920x1080 像素的图片被加载到768x432像素的imageview中): ?...这是因为,Picasso加载了完整尺寸的图片(1920x1080像素)进入内存,当绘图的时候,让GPU即时的恢复到所需要的尺寸(768x432像素),然而Glide则加载精确的imageview尺寸进入内存...外部缓存 在默认情况下Picasso和Glide的外部缓存机制是非常不一样的,通过实验可以发现(1920x1080 像素的图片被加载到768x432像素的imageview中),Glide缓存的是768x432...,只要imageview的尺寸不一样,那么Glide就会重新加载一次,这时候,它会在加载的imageview之前从网络上重新下载,然后再缓存。...防止各位不明白,再来举个例子,如果一个页面的imageview是200*200像素,而另一个页面中的imageview是100*100像素,这时候想要让两个imageview像是同一张图片,那么Glide

    1.9K60

    Android-图片加载策略- Glide 入门和使用

    在这里你将获得 android Glide 教程的入门介绍 Glide是一个安卓库,允许我们通过单行代码从互联网或网址获取图像。在我之前的一篇教程中,我向您展示了毕加索图像库的用法。...Glide是毕加索图书馆的一个很好的选择。大多数功能在两者中都很常见。 Glide是谷歌推荐的流行的Android图像库,甚至Google也在各种应用程序中使用它。以下是此库的一些功能。...---- Glide图像库的特点 支持获取图像,GIF和视频静止图像。 可以添加占位符和错误图像。 支持磁盘缓存。 图像调整大小和裁剪。...Glide.with(context).load(IMAGE_URL).into(imageView); ---- 占位符和图像异常处理 您可以添加占位符图像,直到从Internet加载图像。...- Android Glide示例 让我们做一个简单的Android应用程序,显示Glide图像库的用法。

    1.4K10

    【实操干货】创建一个用在图像内部进行对象检测的Android应用程序

    在这里,我们将研究创建一个用于在图像内部进行对象检测的Android应用程序;如下图所示。 ? 应用程序的演示运行 ? 步骤1:准备模型 在本教程中,我们将使用经过预训练好的ResNet18模型。..._traced.pt存储在一个已知的位置,在本教程的后续步骤中我们将需要此位置。...从文件资源管理器/查找器中打开您的应用程序。 转到app > src > main。 创建一个名为assets的文件夹将模型复制到此文件夹中。...10.我们需要列出模型的输出类 转到app > java 在第一个文件夹中,将新的Java类名称命名为ModelClasses。...运行应用程序后,它的外观应类似于页面顶部的GIF。

    1.2K10

    在自己的数据集上训练TensorFlow更快的R-CNN对象检测模型

    对于自定义数据集,请按照此简单的分步指南将图像及其注释上载到Roboflow 。...为此可以将原始测试图像从Roboflow下载到本地计算机,然后将这些图像添加到Colab Notebook中。...对于格式,请选择COCO JSON并在本地下载到自己的计算机上。(实际上可以下载非TFRecord的任何格式,以将原始图像与注释格式分开!)...一旦在本地解压缩该文件,将看到测试目录原始图像: 现在在Colab笔记本中,展开左侧面板以显示测试文件夹: 右键单击“测试”文件夹,然后选择“上传”。现在可以从本地计算机中选择刚刚下载的所有图像!...在笔记本中,其余单元格将介绍如何加载创建的已保存,训练有素的模型,并在刚刚上传的图像上运行它们。 对于BCCD,输出如下所示: 模型在10,000个纪元后表现不错!

    3.6K20

    图片加载利器——Picasso

    ").into(imageView); Picasso不仅实现了图片异步加载的功能,还解决了android中加载图片时需要解决的一些常见问题: 1.在adapter中需要取消已经不在视野范围的ImageView...2.使用复杂的图片压缩转换来尽可能的减少内存消耗 3.自带内存和硬盘二级缓存功能 特性以及示例代码: ADAPTER 中的下载:Adapter的重用会被自动检测到,Picasso会取消上次的加载 @Override...content providers中的资源文件。...图片未完成加载的时候显示图片 fit调整大小以达到精确的大小 resize(int targetWidth, int targetHeight) 将图像大小调整为像素的大小 resizeDimen...(int targetWidthResId, int targetHeightResId) 将图像大小调整到指定大小 rotate(float degrees) 按指定度旋转图像 rotate(float

    61630
    领券