ImageView的scaleType的屬性有好幾種,分別是matrix(默認)、center、centerCrop、centerInside、fitCenter、fitEnd、fitStart、fitXY
- android:scaleType="center"
保持原圖的大小,顯示在ImageView的中心。當原圖的size大於ImageView的size,超過部分裁剪處理。
- android:scaleType="centerCrop"
以填滿整個ImageView爲目的,將原圖的中心對準ImageView的中心,等比例放大原圖,直到填滿ImageView爲止。因爲是等比例,所以有可能ImageView
的寬和高不能同時被填滿,會留下空白。如果圖片太大,原圖超過ImageView的部分作將裁剪處理。
- android:scaleType="centerInside"
以原圖完全顯示爲目的,將圖片的內容完整居中顯示,通過按比例縮小原圖的size寬(高)等於或小於ImageView的寬(高)。如果原圖的size本身就小於ImageView的size,
則原圖的size不作任何處理,居中顯示在ImageView。
- android:scaleType="matrix"
不改變原圖的大小,從ImageView的左上角開始繪製原圖,原圖超過ImageView的部分作裁剪處理。
- android:scaleType="fitCenter"
把原圖按比例擴大或縮小到ImageView的ImageView的高度,居中顯示
- android:scaleType="fitEnd"
把原圖按比例擴大(縮小)到ImageView的高度,顯示在ImageView的下部分位置
- android:scaleType="fitStart"
把原圖按比例擴大(縮小)到ImageView的高度,顯示在ImageView的上部分位置
- android:scaleType="fitXY"
把原圖按照指定的大小在View中顯示,拉伸顯示圖片,不保持原比例,填滿ImageView.
1、結合背景圖和android:scaleType="fitXY"
2、設置圓角
public static void loadRoundImage(final Context context, final int cornerRadius, String url,int resId,final ImageView imageView){
Glide.with(context)
.load(url)
.asBitmap()
.placeholder(resId)
.diskCacheStrategy(DiskCacheStrategy.ALL) //設置緩存
.into(new BitmapImageViewTarget(imageView){
@Override
protected void setResource(Bitmap resource) {
super.setResource(resource);
RoundedBitmapDrawable circularBitmapDrawable =
RoundedBitmapDrawableFactory.create(context.getResources(), resource);
circularBitmapDrawable.setCornerRadius(cornerRadius); //設置圓角弧度
imageView.setImageDrawable(circularBitmapDrawable);
}
});
}
當然...
如果你用的Glide是最新的4.*.* 請參考下一篇博文: