国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > Android > 正文

Android 使用Picasso加載網(wǎng)絡(luò)圖片等比例縮放的實現(xiàn)方法

2019-12-12 00:36:48
字體:
供稿:網(wǎng)友

在做android圖片加載的時候,由于手機屏幕受限,很多大圖加載過來的時候,我們要求等比例縮放,比如按照固定的寬度,等比例縮放高度,使得圖片的尺寸比例得到相應(yīng)的縮放,但圖片沒有變形。顯然按照android:scaleType不能實現(xiàn),因為會有很多限制,所以必須要自己寫算法。

通過Picasso來縮放

其實picasso提供了這樣的方法。具體是顯示Transformation 的 transform 方法。

(1) 先獲取網(wǎng)絡(luò)或本地圖片的寬高
(2) 獲取需要的目標(biāo)寬
(3) 按比例得到目標(biāo)的高度
(4) 按照目標(biāo)的寬高創(chuàng)建新圖

Transformation transformation = new Transformation() {    @Override    public Bitmap transform(Bitmap source) {      int targetWidth = mImg.getWidth();      LogCat.i("source.getHeight()="+source.getHeight());       LogCat.i("source.getWidth()="+source.getWidth());       LogCat.i("targetWidth="+targetWidth);      if(source.getWidth()==0){        return source;      }      //如果圖片小于設(shè)置的寬度,則返回原圖      if(source.getWidth()<targetWidth){        return source;      }else{        //如果圖片大小大于等于設(shè)置的寬度,則按照設(shè)置的寬度比例來縮放        double aspectRatio = (double) source.getHeight() / (double) source.getWidth();        int targetHeight = (int) (targetWidth * aspectRatio);        if (targetHeight != 0 && targetWidth != 0) {          Bitmap result = Bitmap.createScaledBitmap(source, targetWidth, targetHeight, false);          if (result != source) {            // Same bitmap is returned if sizes are the same            source.recycle();          }          return result;        } else {          return source;        }      }    }    @Override    public String key() {      return "transformation" + " desiredWidth";    }  };

之后在Picasso設(shè)置transform

Picasso.with(mContext)      .load(imageUrl)      .placeholder(R.mipmap.zhanwei)      .error(R.mipmap.zhanwei)      .transform(transformation)      .into(viewHolder.mImageView);

Transformation 這是Picasso的一個非常強大的功能了,它允許你在load圖片 -> into ImageView 中間這個過成對圖片做一系列的變換。比如你要做圖片高斯模糊、添加圓角、做度灰處理、圓形圖片等等都可以通過Transformation來完成。

參考文章: https://stackoverflow.com/questions/21889735/resize-image-to-full-width-and-variable-height-with-picasso

總結(jié)

以上所述是小編給大家介紹的Android 使用Picasso加載網(wǎng)絡(luò)圖片等比例縮放的實現(xiàn)方法,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復(fù)大家的!

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 衡南县| 原阳县| 江阴市| 上栗县| 加查县| 古浪县| 个旧市| 桐梓县| 高唐县| 邯郸市| 鄂州市| 台北县| 安远县| 洛隆县| 全州县| 九台市| 潮安县| 绥阳县| 永福县| 芜湖县| 蒙自县| 即墨市| 资阳市| 南岸区| 延津县| 永宁县| 渝中区| 陆川县| 兴文县| 柳河县| 丰都县| 宁化县| 色达县| 沁水县| 滨州市| 晋江市| 特克斯县| 遂溪县| 方城县| 芜湖县| 镇坪县|