需求:作項目的時候有一個需求:利用從網上加載圖片到手機而且要調整成爲自適應手機屏幕大小。git
我用的是Picasso包來加載圖片,picasso是一個很是優秀的圖片處理包,下載地址以下:http://square.github.io/picasso/ 。用picasso來加載圖片咱們只須要一部就能夠搞定:github
ImageView imageView = (ImageView) view.findViewById(R.id.iv_image_browser);.ide
RequestCreator requestCreator= Picasso.with(view.getContext()).load(IPConfig.URL+orderUrlList.get(position));spa
requestCreator.resize(200,200).placeholder(R.drawable.image_loding).error(R.drawable.image_error).into(imageView);code
經過這幾個步驟咱們就能夠把咱們的圖片加載進咱們的imageView中orm
方法說明 :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()"。