●程式說明
(一)使用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下載圖片資源
文章標籤
全站熱搜