亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > Android > 正文

Android 異步加載圖片的實例代碼

2020-04-11 12:24:20
字體:
來源:轉載
供稿:網友

異步加載圖片的主要流程是進行判斷緩存中是否存在圖片,如果存在則直接返回,如果不存在則進行下載并進行緩存。

以下是建立一個異步下載類:

復制代碼 代碼如下:

/**
 * User: Tom
 * Date: 13-5-13
 * Time: 下午8:07
 */
public class AsnycImageLoader {

    //定義一個HashMap進行存放緩存的Image key為String Value為一個弱引用的一個資源文件
    // 圖片 為了方便JAVA的回收
    private Map<String, SoftReference<Drawable>> imageCache = null;
    public AsnycImageLoader() {
        imageCache = new HashMap<String, SoftReference<Drawable>>();
    }

    /**
     * 加載圖片
     * <p>imageurl為下載資源的URL,
     * ImageCallback當緩存中不存在相關圖片時時行網絡下載
     * 在多線程下要使用Handler進行操作UI 利用回調接口的方式進行更新UI
     * </p>
     * @param imageUrl
     * @param callback
     * @return
     */
    public Drawable loadDrawable(final String imageUrl, final ImageCallback callback) {
        //進行判斷ImageCache中是否存在緩存圖片
        if (imageCache.containsKey(imageUrl)) {
            SoftReference<Drawable> softReference = imageCache.get(imageUrl);
            if (softReference.get() != null) {
                return softReference.get();
            }
        }
        //定義操作UI的Handler
        final Handler handler = new Handler() {
            @Override
            public void handleMessage(Message msg) {
                callback.imageLoaded((Drawable) msg.obj);
            }
        };

        new Thread(new Runnable() {
            @Override
            public void run() {
                Drawable drawable = loadImageFromUrl(imageUrl);
                imageCache.put(imageUrl, new SoftReference<Drawable>(drawable));
                Message message = handler.obtainMessage(0, drawable);
                handler.sendMessage(message);
            }
        }).start();
        return null;
    }

    //根據URL地址進行獲取資源
    protected Drawable loadImageFromUrl(String imageUrl) {
        try {
            return Drawable.createFromStream(new URL(imageUrl).openStream(), "src");
        } catch (Exception e) {
            throw new RuntimeException();
        }
    }

    //回調接口
    public interface ImageCallback {
        public abstract void imageLoaded(Drawable drawable);
    }
}

主Activity:

復制代碼 代碼如下:

/**
 * User: Tom
 * Date: 13-5-13
 * Time: 下午8:33
 */
public class LoadImage extends Activity {
    private AsnycImageLoader loader = null;

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.loadimages);

        loader = new AsnycImageLoader();

        loadImage("http://www.49028c.com/images/icon-partners.png", R.id.image1);
        loadImage("http://www.49028c.com/images/icon-dev.png", R.id.image2);
        loadImage("http://pic28.VeVB.COm/20130421/12302174_231210305323_2.jpg", R.id.image3);


    }

    public void loadImage(String url, int id) {
        final ImageView imageView = (ImageView) findViewById(id);
        Drawable cacheImage = loader.loadDrawable(url, new AsnycImageLoader.ImageCallback() {
            @Override
            public void imageLoaded(Drawable drawable) {
                imageView.setImageDrawable(drawable);
            }
        });
        if (cacheImage != null) {
            imageView.setImageDrawable(cacheImage);
        }
    }
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久精品久久精品亚洲人| 久久久精品视频成人| 97av在线影院| 亚洲精品视频在线播放| 日韩中文字幕亚洲| 久久国产精品影视| 日韩av在线免费观看| 日韩一区二区精品视频| 欧美精品久久一区二区| 日本午夜人人精品| 青青在线视频一区二区三区| 亚洲免费福利视频| 国产精品第2页| 久久香蕉精品香蕉| 亚洲丁香久久久| 亚洲情综合五月天| 2019中文字幕在线免费观看| 亚洲精品v欧美精品v日韩精品| 欧美精品一区在线播放| 日本欧美在线视频| 国产欧美日韩综合精品| 欧美国产日本在线| 国产精品av在线播放| 国产精品爱啪在线线免费观看| 久久久久久久久国产| 欧美最顶级的aⅴ艳星| 97久久精品在线| 自拍偷拍亚洲在线| 欧美成人一区二区三区电影| 性日韩欧美在线视频| 亚洲精品国产精品自产a区红杏吧| 日韩中文字幕精品| 97视频在线观看免费| 97在线免费视频| 欧美成人免费播放| 日韩av片永久免费网站| 国产欧美日韩专区发布| 久久精品夜夜夜夜夜久久| 日本韩国在线不卡| 性欧美亚洲xxxx乳在线观看| 日韩av高清不卡| 亚洲三级黄色在线观看| 亚洲第一区第一页| 91精品国产免费久久久久久| 91免费在线视频网站| 这里只有精品在线播放| 国产精品久久久久aaaa九色| 国产精品美女久久久久久免费| 亚洲性生活视频在线观看| 国产精品激情av在线播放| www.美女亚洲精品| 久久综合88中文色鬼| 欧美做爰性生交视频| 国产成人久久久| 亚洲美女动态图120秒| 最新国产精品拍自在线播放| 亚洲欧美制服丝袜| 欧美激情视频给我| 欧美激情影音先锋| 68精品国产免费久久久久久婷婷| 77777亚洲午夜久久多人| 亚洲日韩第一页| 国产激情999| 国产精品入口尤物| 午夜精品一区二区三区在线播放| 欧美激情aaaa| 国产精品天天狠天天看| 97久久久免费福利网址| 国产欧美日韩亚洲精品| 国产aⅴ夜夜欢一区二区三区| 日韩在线观看免费av| 在线播放日韩av| 亚洲欧美国产一区二区三区| 亚洲精品xxxx| 国产精品视频导航| 国产91精品黑色丝袜高跟鞋| 欧美最顶级的aⅴ艳星| 91色精品视频在线| 国产精品视频精品| 狠狠躁夜夜躁人人爽超碰91| 亚洲高清不卡av| 26uuu亚洲国产精品| 国产精品ⅴa在线观看h| 国产精品白丝av嫩草影院| 久久网福利资源网站| 国产成人精品综合久久久| 日韩亚洲第一页| 日日摸夜夜添一区| 欧美丰满少妇xxxx| 亚洲有声小说3d| 26uuu另类亚洲欧美日本老年| 欧美精品久久久久久久免费观看| 日韩av在线播放资源| 国产成人精品免费久久久久| 日韩电影中文字幕在线观看| 国产精品国语对白| 久久久精品中文字幕| 国产欧美日韩精品专区| 黑人巨大精品欧美一区二区免费| 91综合免费在线| 国产精品久久色| 精品国产91久久久久久老师| 国产91免费观看| 久久人体大胆视频| 91极品女神在线| 宅男66日本亚洲欧美视频| 国产精品吊钟奶在线| 国产亚洲免费的视频看| 欧美日韩国产区| 97久久久免费福利网址| 色偷偷综合社区| 精品露脸国产偷人在视频| 亚洲视频自拍偷拍| 国产成人aa精品一区在线播放| 91美女片黄在线观看游戏| 在线观看精品国产视频| 一道本无吗dⅴd在线播放一区| 国产视频福利一区| 精品亚洲一区二区| 欧洲亚洲妇女av| 久久久亚洲天堂| 国产ts人妖一区二区三区| 成人网页在线免费观看| 少妇精69xxtheporn| 欧美超级免费视 在线| 亚洲综合自拍一区| 97精品国产97久久久久久免费| 亚洲电影在线观看| 日韩一区二区福利| 国产一区二区三区高清在线观看| 亚洲人成电影在线观看天堂色| 国产成人高清激情视频在线观看| 精品视频在线播放| 欧洲成人午夜免费大片| 亚洲一区亚洲二区| 91经典在线视频| 在线观看免费高清视频97| 欧美午夜精品久久久久久浪潮| 欧美色视频日本高清在线观看| 国产精品专区一| 插插插亚洲综合网| 国内精品中文字幕| 午夜精品一区二区三区视频免费看| 永久免费毛片在线播放不卡| 亚洲国产女人aaa毛片在线| 欧美精品制服第一页| 97在线视频精品| 亚洲国产精品999| 91久久久精品| 亚洲91精品在线| 国产视频自拍一区| 91久久精品国产91性色| 不卡在线观看电视剧完整版| 激情亚洲一区二区三区四区| 97在线视频国产| 欧美午夜片欧美片在线观看| 精品久久久久久久久久久久久| 国产精品直播网红| 欧美精品一区三区| 精品magnet| 亚洲男人天堂视频| 国产成人鲁鲁免费视频a| 九色精品美女在线| 亚洲欧美日韩天堂一区二区|