日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
在Flutter中更快地加載圖像資源!

我們可以把圖片放在我們的assets文件夾中,但如何更快地加載它們呢?這里有一個(gè)Flutter中的秘密函數(shù)可以幫助我們做到這一點(diǎn)--precacheImage()。

很多時(shí)候(尤其是在 Flutter Web 中),您的本地資源圖像需要花費(fèi)大量時(shí)間在屏幕上加載和渲染!

這對(duì)用戶來說是不利的,特別是如果該圖像是你的屏幕的背景圖像。如果圖像是屏幕上的任何組件,我們?nèi)匀豢梢燥@示閃爍的微光(shimmer)或其他東西,以便用戶知道圖像正在加載。但是,我們不能為背景圖片顯示閃爍的微光,對(duì)嗎?

我們?cè)?Flutter 中有一個(gè)簡(jiǎn)單而有用的方法,我們可以用它來更快地加載我們的資產(chǎn)圖像——precacheImage()!

precacheImage 將ImageProvider和context作為必要參數(shù),并返回 Future 。

 
 
 
 
  1. Future precacheImage(
  2.     ImageProvider provider,
  3.     BuildContext context,
  4.     {Size? size,
  5.     ImageErrorListener? onError}
  6. )
  7. 此方法將圖像預(yù)取到圖像緩存中,然后無論何時(shí)使用該圖像,它的加載速度都會(huì)快得多。但是,ImageCache 不允許保存非常大的圖像。

    由于在此需要上下文,因此我們可以在可訪問上下文的任何函數(shù)中添加 precacheImage()。我們可以將相同的內(nèi)容放在第一個(gè)屏幕的 didChangeDependencies() 方法中!

    例如

     
     
     
     
    1. void didChangeDependencies() {      
    2.   precacheImage(AssetImage("assets/logo.png"), context);
    3.   precacheImage(AssetImage("assets/home_bg.png"), context);  
    4.   super.didChangeDependencies();  
    5. }

    上面的例子將把 logo.png 和 home_bg.png 緩存到ImageCache中。所以現(xiàn)在,無論何時(shí)我們使用這張圖片,它都會(huì)加載得更快。

    這是一個(gè)方便的技巧,以加載你的圖像資產(chǎn)更快!下面是使用和不使用 precacheImage() 加載圖像所需時(shí)間的一個(gè)小統(tǒng)計(jì)

    你可以看到,開始的 3 個(gè)打印語句是沒有 precacheImage 的,每次都花費(fèi)近 10 毫秒。現(xiàn)在,下一個(gè)是 precacheImage,它在緩存中存儲(chǔ)圖像需要 14 毫秒。隨后的加載只用了 5 毫秒。所以我們可以得出結(jié)論,它將加載時(shí)間減少到近 50%!您可以在 GitHub 上找到相同的代碼!

    原文:https://abhishekdoshi26.medium.com/load-your-image-assets-faster-in-flutter-13d06037af2b


    文章題目:在Flutter中更快地加載圖像資源!
    本文URL:http://www.5511xx.com/article/cocgcch.html