从零开始打造一个新闻订阅APP之Android篇(三、关于图片加载、展示的那些事)

本文探讨了在Android开发中处理图片加载时遇到的挑战,包括UI线程限制、内存溢出和图片大小与内存占用的关系。推荐了Android-Universal-Image-Loader库以简化图片加载,并建议初学者通过实践理解图片处理的细节,以避免内存问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在上一篇文章 如何开发一个新闻订阅APP之Android篇(二、从“逛”页面谈谈多种格式listview的实现细节)中,我介绍了lsitView的多种布局的实现细节,这其中包含了很多图片的显示。其实当前比较流行的APP中,随处可见大量的图片,这里把自己遇到的一些问题总结出来,
简单的加载图片通常需要注意以下两个细节:
1、在开发android程序时,如果你在UI线程,也就是主线程中做了类似于网络连接这些事的时候,程序是不能运行的。因为android的开发规范要求,主UI线程不允许处理一些耗时任务,如果需要连接网络获取数据,你需要在子线程中完成这件事。android提供了Handler和AsyncTask等封装好的异步消息处理机制。它们使得你非常方便的在子线程和UI线程之间进行通信和切换。关于AsyncTask,这篇文章讲的非常透彻 Android AsyncTask完全解析,带你从源码的角度彻底理解,这里就不多赘述了。

2、这个列表页有很多的图片。很容易想象,手机的内存资源是很宝贵的,如果不对内存加以控制,可能APP很快就会出现OOM错误。控制内存溢出有很多方法,一般来讲,都是利用缓存机制,通常有内存缓存和Disk缓存两层控制即可。
对于程序中图片的内存控制问题,这篇博文同样讲的非常透彻:
Android高效加载大图、多图解决方案,有效避免程序OOM

除此之外,初学者很可能会遇到的一个坑是图片的大小和imageView大小之间的关系。如果你将一张大于屏幕大小的图片不经处理直接加载到imageView中,这本身没有什么问题,图片会根据你的imageView的设置自动缩放(除非单张图片直接超过了android默认的内存限制,图片会无法显示),但是可能依据你的程序实现会出现

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值