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

創(chuàng)新互聯(lián)公司主要從事網(wǎng)站設計、成都網(wǎng)站設計、網(wǎng)頁設計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務。立足成都服務金鄉(xiāng),10年網(wǎng)站建設經(jīng)驗,價格優(yōu)惠、服務專業(yè),歡迎來電咨詢建站服務:13518219792
通過Glide來縮放
其實glide提供了這樣的方法。具體是顯示繼承Transformation 的 setResource 方法。
(1) 先獲取網(wǎng)絡或本地圖片的寬高
(2) 獲取需要的目標寬
(3) 按比例得到目標的高度
(4) 按照目標的寬高創(chuàng)建新圖
/** * =========================================== * 版 本:1.0 * 描 述:設置圖片等比縮放 *glide處理圖片.
* =========================================== */ public class TransformationUtils extends ImageViewTarget{ private ImageView target; public TransformationUtils(ImageView target) { super(target); this.target = target; } @Override protected void setResource(Bitmap resource) { view.setImageBitmap(resource); //獲取原圖的寬高 int width = resource.getWidth(); int height = resource.getHeight(); //獲取imageView的寬 int imageViewWidth = target.getWidth(); //計算縮放比例 float sy = (float) (imageViewWidth * 0.1) / (float) (width * 0.1); //計算圖片等比例放大后的高 int imageViewHeight = (int) (height * sy); ViewGroup.LayoutParams params = target.getLayoutParams(); params.height = imageViewHeight; target.setLayoutParams(params); } }
之后在Glide設置transform
Glide.with(this)
.load(newActiviteLeftBannerUrl)
.asBitmap()
.placeholder(R.drawable.placeholder)
.into(new TransformationUtils(target));Transformation 這是Glide的一個非常強大的功能了,它允許你在load圖片 -> into ImageView 中間這個過成對圖片做一系列的變換。比如你要做圖片高斯模糊、添加圓角、做度灰處理、圓形圖片等等都可以通過Transformation來完成。
總結(jié)
以上所述是小編給大家介紹的Android 使用Glide加載網(wǎng)絡圖片等比例縮放的實現(xiàn)方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對創(chuàng)新互聯(lián)網(wǎng)站的支持!
新聞名稱:Android使用Glide加載網(wǎng)絡圖片等比例縮放的實現(xiàn)方法
文章位置:http://www.dlmjj.cn/article/pppicj.html


咨詢
建站咨詢
