ImageView中ScaleType屬性表示圖片的顯示方式,共有8種取值:
matrix:將圖片顯示到定義好的寬度和高度描述的矩形中,不做任何縮放(圖形的左上角對齊矩形的左上角)。意味着,如果矩形比圖形大,則圖片顯示在左上角,如果矩形比圖形小,則只會顯示圖形矩形部分的大小。
fitXY:將圖片不按等比例擴大/縮小到View的大小顯示(確保圖片會完整顯示,並充滿View)
fitStart:將圖片按照等比例進行縮放,並顯示在矩形的左上方(確保圖片會完整顯示,矩形的短邊會充滿)
fitCenter:將圖片按照等比例縮放,並顯示在矩形的中間(確保圖片會完整顯示,矩形的短邊會充滿)。ImageView的默認狀態
fitEnd:據圖片按照等比例縮放,並顯示在矩形的右下方(確保圖片會完整顯示,矩形的短邊會充滿)
fitStart、fitCenter、fitEnd三種縮放的方式都一樣,只是顯示的位置不同。無論縮小還是放大,都必須要保證,矩形的短邊能被充滿。
center:不做任何縮放操作,將圖片按照原來的大小居中顯示,超出ImageView大小部分被截斷,注意是從兩邊等分截斷。
如果圖片大小小於ImageView大小,則居中顯示。(圖片可能部分顯示)
centerCrop:將圖片按照等比例縮放,並截取縮放后的中間部分顯示在ImageView中。(使得圖片的高等於View的高,使得圖片寬等於或大於View的寬)(圖片可能部分顯示)
centerInside:將圖片大小大於ImageView的圖片進行等比例縮小,直到整幅圖能夠居中顯示在ImageView中,小於ImageView的圖片不變,直接居中顯示。(圖片完整顯示)
centerInside和fitCenter最主要的區別是,當ImageView大小大於圖片大小時候,centerInside直接顯示圖片原大小,而fitCenter,則會放大圖片,使得圖片能夠充滿矩形的短邊。