安卓开发:网络图片下载和显示

本文详细记录了Android应用中如何实现网络图片的下载和显示,通过创建一个图片加载器,利用LruCache进行缓存,并解决了运行时可能出现的网络权限和联网状态问题。
摘要由CSDN通过智能技术生成


前言

记录APP从无到有下载网络图片并做展示的方法:创建一个图片加载器负责下载和显示。


一、图片加载器

图片加载器的功能包括图片下载和图片的缓存。

缓存类的设计如下,使用LruCache类即可,缓存的最大值设定为为运行时内存的四分之一。关于LruCache的使用和原理可自行百度。

class ImageCache {
   
    lateinit var imageCache: LruCache<String, Bitmap>
    init {
   
        initCache()
    }
    private fun initCache() {
   
        val maxMemory = Runtime.getRuntime().maxMemory() / 1024
        val cacheSize = maxMemory / 4
        imageCache = object : LruCache<String, Bitmap>(cacheSize.toInt()) {
   
            override fun sizeOf(key: String?, value: Bitmap?): Int {
   
                return (value?.rowBytes?.times(value.height) ?: 0) / 1024
            }
        }
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值