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高效加载网络图片的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android studio如何使用SV
- 下一篇: 《ArcGIS Engine+C#实例开