ImagePicker在安卓上对图片的应用一例

简介: 偷得浮生半日闲,早上在逛StackOverflow的时候发现有人求助,提到了一个不怎么火的ImagePicker库:

前言

偷得浮生半日闲,早上在逛StackOverflow的时候发现有人求助,提到了一个不怎么火的ImagePicker库:


网络异常,图片无法展示
|


心想这个库说不定是什么好东西,说不定有所收获,于是我就继续观望了下去。

正篇

来龙去脉

看完问题后,我便按着链接寻了过去,看了半天感觉是比ImagePicker多一些方便的地方。但帖子的问题其实还是和ImagePicker有关。


网络异常,图片无法展示
|


问题的关键:In my application I want use this library for ImagePicker : But after add this line private val imagePicker: ImagePicker = registerImagePicker(this) show me Force close.

即在它的应用中添加了一行关于ImagePicker的代码后就直接导致应用强制关闭。

一看到强制关闭,我第一反应就是空指针或者尚未初始化便调用。

然后我就看了一下答案,有两个回答,其实意思都差不多,不过是给出了两个方案。

解决方法

方法1:回答的人第一句就点名了原因:The reason is is calling to get the Context.


网络异常,图片无法展示
|


并且给出了原因与示例:

fun Fragment.registerImagePicker(callback: ImagePickerResultListener): ImagePicker {
        return ImagePicker(callback, requireActivity())
    }
class FragmentB : Fragment(), ImagePickerResultListener {
private lateinit var imagePicker: ImagePicker
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
    super.onViewCreated(view, savedInstanceState)
    imagePicker = registerImagePicker(this)
}
}

我是用Java写安卓的,所以这几行代码我也不大清晰,但结合回复者语义,应该是让寻助者把这行出错代码转移到fragment lifecycle.onViewCreated()中,放到这里面去初始化。 而答案2:可能是过于简洁,提问的人没有认可该答案


网络异常,图片无法展示
|


回答的人也说明是context为正确获取,让他将this改成对应activityfragment的上下文:

private val imagePicker: ImagePicker = registerImagePicker(requireActivity)
private val imagePicker: ImagePicker = registerImagePicker(requireContext)

这个回答的确不如上一个,没有具体到方法中的原因。

小结

工作中有时候会很忙,但同样收获很多,而难得闲下来通过看博客和问答社区提升自己也是极好的,我们要抓住这些日常的小细节记录下来,这样才能再往后回忆知识时不产生既视感!

相关文章
|
10天前
|
移动开发 Java Android开发
构建高效Android应用:Kotlin协程的实践之路
【4月更文挑战第30天】在移动开发领域,随着用户需求的不断增长和设备性能的持续提升,实现流畅且高效的用户体验已成为开发者的首要任务。针对Android平台,Kotlin协程作为一种新兴的异步编程解决方案,以其轻量级线程管理和简洁的代码逻辑受到广泛关注。本文将深入探讨Kotlin协程的概念、优势以及在实际Android应用中的运用,通过实例演示如何利用协程提升应用性能和响应能力,为开发者提供一条构建更高效Android应用的实践路径。
|
1天前
|
开发工具 Android开发 Windows
Android应用] 问题2:ERROR: unknown virtual device name:
Android应用] 问题2:ERROR: unknown virtual device name:
|
1天前
|
XML JSON API
转Android上基于JSON的数据交互应用
转Android上基于JSON的数据交互应用
|
1天前
|
Android开发
Android通过手势(多点)缩放和拖拽图片
Android通过手势(多点)缩放和拖拽图片
|
1天前
|
Android开发
Android应用实例(一)之---有道辞典VZ.0
Android应用实例(一)之---有道辞典VZ.0
|
2天前
|
安全 Java Android开发
构建高效Android应用:采用Kotlin进行内存优化的策略
【5月更文挑战第8天】 在移动开发领域,性能优化一直是开发者关注的焦点。特别是对于Android应用而言,合理管理内存资源是确保应用流畅运行的关键因素之一。近年来,Kotlin作为官方推荐的开发语言,以其简洁、安全和互操作性的特点受到开发者青睐。本文将深入探讨利用Kotlin语言特性,通过具体策略对Android应用的内存使用进行优化,旨在帮助开发者提高应用性能,减少内存消耗,避免常见的内存泄漏问题。
6 0
|
3天前
|
移动开发 数据库 Android开发
构建高效Android应用:Kotlin协程的全面应用
【5月更文挑战第7天】 在移动开发领域,性能优化与流畅的用户体验是至关重要的。随着Kotlin语言的流行,其并发神器——协程,已成为提升Android应用性能的重要工具。本文将深入探讨如何在Android项目中利用Kotlin协程进行异步编程、网络请求和数据库操作,以及如何通过协程简化代码结构,增强应用的响应性和稳定性。我们的目标是为开发者提供一套实用的协程使用模式和最佳实践,以便构建更加高效的Android应用。
19 3
|
3天前
|
移动开发 数据库 Android开发
构建高效Android应用:Kotlin与协程的完美结合
【5月更文挑战第7天】 在移动开发领域,性能优化和资源管理始终是核心议题。随着Kotlin语言的普及,其提供的协程特性为Android开发者带来了异步编程的新范式。本文将深入探讨如何通过Kotlin协程来优化Android应用的性能,实现流畅的用户体验,并减少资源消耗。我们将分析协程的核心概念,并通过实际案例演示其在Android开发中的应用场景和优势。
|
4天前
|
Android开发
Android中Glide加载Https图片失败的解决方案
Android中Glide加载Https图片失败的解决方案
13 1
|
6天前
|
移动开发 前端开发 Android开发
构建高效Android应用:探究Kotlin协程的优势
【5月更文挑战第4天】 在移动开发领域,尤其是对于Android开发者而言,编写响应迅速且高效的应用程序至关重要。Kotlin作为一种现代的编程语言,其提供的协程特性为异步编程带来了革命性的改变。本文将深入探讨Kotlin协程在Android开发中的应用优势,并通过实例代码展示如何利用协程简化异步任务处理,提高应用性能和用户体验。