日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

android高效加载网络图片

發布時間:2025/5/22 编程问答 74 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android高效加载网络图片 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

? 需求:做項目的時候有一個需求:利用從網上加載圖片到手機并且要調整成為自適應手機屏幕大小。


??????我用的是Picasso包來加載圖片,picasso是一個非常優秀的圖片處理包,下載地址如下:http://square.github.io/picasso/?? 。用picasso來加載圖片我們只需要一部就可以搞定:


????? ImageView imageView = (ImageView) view.findViewById(R.id.iv_image_browser);.

????? RequestCreator requestCreator= Picasso.with(view.getContext()).load(IPConfig.URL+orderUrlList.get(position));

??? ? requestCreator.resize(200,200).placeholder(R.drawable.image_loding).error(R.drawable.image_error).into(imageView);


????? 通過這幾個步驟我們就可以把我們的圖片加載進我們的imageView中


????? 方法說明?:with(Context context)?:??告訴Picasso我們需要加載圖片的頁面是哪個context。?必須

??????????????????????? ?load(String?path):用于下載圖片。必須

???????????????????????? resize(int width,int height):用于設置圖片的寬高。不必須

???????????????????????? placeholder(int ResId):當圖片正在加載的時候顯示的圖片。不必須

???????????????????? ??? error(int ResId):圖片加載失敗時顯示的圖片。不必須

???????????????????????? into(ImageView?imageview):?把圖片顯示在指定控件上。必須


效果圖:

??????

???????????????????? ???

?????

?????????????????樓主是把圖片放在gradview中加載的。


???????????????之后又有一個需求就是我的每個item都設置了點擊事件,當點擊了會跳轉進一個viewpager中瀏覽圖片,瀏覽圖片時我需要讓其適應手機屏幕大小,顯然 resize這方法現在不適用了,在網上找了一下發現有個transform方法他可以自定義顯示圖片,transform里面需要傳一個實施了Transform接口的類,源碼如下:

ImageView?imageView?=?(ImageView)?view.findViewById(R.id.iv_image_viewpager_browser);?RequestCreator?requestCreator?=?Picasso.with(view.getContext()).load(IPConfig.URL+arrayList.get(position));?requestCreator.transform(new?MyTransfomation()).into(imageView);


private?class?MyTransfomation?implements?Transformation{@Override??public?Bitmap?transform(Bitmap?bitmap)?{double?ratio?=?bitmap.getHeight()/?bitmap.getWidth();??screenHeight?=?(int)(screenWidth*ratio);??Bitmap?newBitMap?=?Bitmap.createScaledBitmap(bitmap,?screenWidth,?screenHeight,?true);??bitmap.recycle();?//這要回收一下?不然會拋出異常??return?newBitMap;??}@Override??public?String?key()?{return?"square()";??} }



需要注意的是?screemWidth是屏幕寬度。??創建了一個新的bitmap的時候,之后以前的bitmap需要回收不然會報錯,key()方法返回的必須是"square()"。


???????????????

轉載于:https://my.oschina.net/u/2505383/blog/634104

總結

以上是生活随笔為你收集整理的android高效加载网络图片的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。