案例-下载图片

  • 更新时间:2026-03-14 22:04:27

进度条下载案例,当点击按钮的时候,我将异步下载一个图片,并且显示进度到进度条上。

Xml代码

<ui>
    <statusbar/>
    <coord w="max" h="max">
        <appbar-layout w="max">
            <appbar w="max" id="mAppbar" back="true" title="我的应用">
                <item icon="ic_article_outline" text="日志"/>
                <item icon="ic_picture_in_picture_outline" text="日志悬浮窗"/>
            </appbar>
        </appbar-layout>
        <linear behavior="appbar" w="max" h="max" gravity="center">
            <progress id="mPg" style="line" padding="10"/>
            <button id="mBut" text="开始下载"/>
        </linear>
    </coord>
</ui>

Js代码

let ui = $ui.layout("main.xml");
let mAppbar = ui.id("mAppbar");
mAppbar.back(() => {
    ui.finish();
});
//显示界面
ui.show();
let mPg = ui.id("mPg");
let mBut = ui.id("mBut");
mPg.hide();//隐藏
mBut.click(() => {
    //当点击的时候 就显示进度条 并且下载文件
    mPg.show();
    //开始下载文件
    let url = "https://pics0.baidu.com/feed/f11f3a292df5e0feee2783e88baf3fa75fdf727e.jpeg?token=4afc91463326e4f4a44e2cde691a54a0";
    let path = "/sdcard/美女.png";
    //异步下载
    $http.download(url, path, (cur, total, percent) => {
        log("下载进度", cur, total, percent);
        mPg.setMax(total);
        mPg.setProgress(cur);
    }, () => {
        log("下载完毕,正在显示美女图片...");
        // showImg(path);
    }, (res) => {
        log("下载失败", res);
    });
});