●程式說明

(一)使用ImageRequest=>需要七個參數:url、成功要做甚麼、最大寬、最大高、 scaletype、顏色、失敗做甚麼
 
RequestQueue queue= Volley.newRequestQueue(MainActivity.this);
ImageRequest request1=new ImageRequest("http://images.parents.mdpcdn.com/sites/parents.com/files/styles/width_300/public/images/p_101395269.jpg",
        new Response.Listener<Bitmap>() {
            @Override
            public void onResponse(Bitmap response) {
                ImageView iv1=(ImageView)findViewById(R.id.iv1);
                iv1.setImageBitmap(response);
            }
        }, 0, 0, ImageView.ScaleType.FIT_XY, Bitmap.Config.RGB_565
        , new Response.ErrorListener() {
    @Override
    public void onErrorResponse(VolleyError error) {
    }
});
queue.add(request1);
 
**說明:
1.要先拉ImageView
2.最大寬高設為0的時候,代表不設定寬高限制
3.顏色通常都用RGB_565

 

(二)使用picasso
=>好處是會作暫存,如果都從同一個網站下載圖片,以新聞網為例,可能幾分鐘後又去看一次新聞,picasso會自動偵測暫存,如果有資料就不會再次下載,但使用ImageRequest則會重複下載,看一次就會下載一次
=>加build.gradle compile 'com.squareup.picasso:picasso:2.5.2'
 
ImageView iv2=(ImageView)findViewById(R.id.iv2);
Picasso.with(this)
        .load("https://thumb1.shutterstock.com/display_pic_with_logo/3138983/499778260/stock-vector-cartoon-ladybug-vector-illustration-cute-red-ladybug-isolated-in-a-flat-style-499778260.jpg")
        .into(iv2);

 

**上述兩種做法的缺點:當要載入的圖片很大時,不會出現進度條,要等全部載完才會有反應,但可以使用轉圈圈的方式

 

●程式參考(GitHub):使用volley ImageRequest和Picasso下載圖片資源

arrow
arrow
    創作者介紹
    創作者 muchone 的頭像
    muchone

    簡單。生活。享受

    muchone 發表在 痞客邦 留言(0) 人氣()