ScaleType的使用方法
引用http://www.l99.com/EditText_view.action?textId=545898
圖片引用來自於http://blog.csdn.net/larryl2003/article/details/6919513
ImageView的scaleType的屬性主要是來設定ImageView控制元件的前景圖片,比如設定PNG的透明色的前景,則ImageView控制元件的背景色則可以顯示出來。背景圖片或是顏色一般都是會充滿整個控制元件的大小,但是前景色相當於是控制元件上層蒙的一層布,而顯示的區域仍然是控制元件的大小,這個肯定是不會變化。
下面補充scaleType下面幾種屬性對於圖片放置位置和縮放比例以至於是否對圖片進行拉伸進行說明。
1:ImageView.ScaleType.CENTER|android:scaleType="center"
以原圖的幾何中心點和ImagView的幾何中心點為基準,按圖片的原來size居中顯示,不縮放,當圖片長/寬超過View的長/寬,則擷取圖片的居中部分顯示ImageView的size.當圖片小於View
的長寬時,只顯示圖片的size,不剪裁。
例圖:
2:ImageView.ScaleType.CENTER_CROP|android:scaleType="centerCrop"
以原圖的幾何中心點和ImagView的幾何中心點為基準,按比例擴大(圖片小於View的寬時)圖片的size居中顯示,使得圖片長 (寬)等於或大於 View的長(寬),並按View的大小擷取圖片。當原圖的size大於ImageView時,按比例縮小圖片,使得長寬中有一向等於ImageView,另一向大於ImageView。實際上,使得原圖的size大於等於ImageView
例圖:
3:ImageView.ScaleType.CENTER_INSIDE|android:scaleType="centerInside"
以原圖的幾何中心點和ImagView的幾何中心點為基準,將圖片的內容完整居中顯示,通過按比例縮小原來的size使得圖片長(寬)等於或小於ImageView的長(寬)
例圖:
4:ImageView.ScaleType.FIT_CENTER|android:scaleType="fitCenter"
把圖片按比例擴大(縮小)到View的寬度,居中顯示
例圖:
5:ImageView.ScaleType.FIT_END|android:scaleType="fitEnd"
把圖片按比例擴大(縮小)到View的寬度,顯示在View的下部分位置(和4“fitCenter”的縮放方式相同,只是放置的位置顯示在View的下方)
6:ImageView.ScaleType.FIT_START|android:scaleType="fitStart"
把圖片按比例擴大(縮小)到View的寬度,顯示在View的上部分位置(和4“fitCenter”的縮放方式相同,只是放置的位置顯示在View的上面)
7:ImageView.ScaleType.FIT_XY|android:scaleType="fitXY"
把圖片按照指定的大小在View中顯示,拉伸顯示圖片,會使圖片長寬比例拉伸,圖片的變形,一般不建議使用此屬性,不保持原比例,填滿View.
例圖:
8:ImageView.ScaleType.MATRIX|android:scaleType="matrix"
用matrix來繪製
//獲得Bitmap的高和寬
int bmpWidth=bmp.getWidth();
int bmpHeight=bmp.getHeight();
//設定縮小比例
double scale=0.8;
//計算出這次要縮小的比例 (長和寬的縮放比例可以是不一樣的)
scaleWidth=(float)(scaleWidth*scale);
scaleHeight=(float)(scaleHeight*scale);
//產生resize後的Bitmap物件
Matrix matrix=new Matrix();
matrix.postScale(scaleWidth, scaleHeight);
Bitmap resizeBmp=Bitmap.createBitmap(bmp, 0, 0, bmpWidth, bmpHeight, matrix, true);
scaletype的種類分為三類matrix(預設)、fit-X類、和center類。
(1)matrix就不多說。
(2)fit-X類中,fitStart、fitCenter和fitEnd之間的都是根據需要使原圖改變對ImgView進行適應,不剪裁,按matrix進行繪製,但它們
的區別在於基準不同。fitStart的基準為最上角的點(即matrix方式開始的點)fitCenter的基準點為中間的點
(matrix方式中可以使圖片居中的點),而fitEnd的基準點為右下角的點(即matrix方式最後繪製點)。
(3)center類中,center、centerCrop、centerInside都是以原圖的幾何中心點和ImagView的幾何中心點為基準,且只繪製
ImagView大小的影象,不同的是是否保持原圖大小和繪圖的目標不同、採取的手段不同
謝謝兩位博主的資源,供學習使用!
相關文章
- ImageView的scaleType的屬性理解View
- Android UI系列-----ImageView的scaleType屬性AndroidUIView
- ImageView之ScaleType詳解及擴充View
- ImageView.ScaleType設定圖解 轉View圖解
- [Android] ImageView.ScaleType設定圖解AndroidView圖解
- Fresco的圖片SimpleDraweeView設定ScaleType不起作用的問題View
- 圖片基礎知識梳理(1) ImageView 的 ScaleType 屬性解析View
- ImageView的屬性android:scaleType設定最佳比例圖片顯示ViewAndroid
- 這一次,徹底幫你搞明白 ImageView ScaleTypeView
- FMDatabase 的使用方法Database
- ****phpredis的使用方法PHPRedis
- docker的使用方法Docker
- Markdown的使用方法
- ImageView相關------ ScaleType講解和Metrix控制(總結用來速查)View
- find 的命令的使用方法。
- React 路由的使用方法React路由
- docker的基本使用方法Docker
- bootstrap Table的使用方法boot
- BeautifulSoup模組的使用方法
- Analyze 命令的使用方法
- 提高班1:ImageView中ScaleType屬性詳解,配圖詳解View
- axios baseURL 的使用方法iOS
- Vue元件的基本使用方法Vue元件
- Jquery 和 Ajax的 使用方法jQuery
- jquery 中 $.map 的使用方法jQuery
- Vue-Router的使用方法Vue
- YogaKit中 position 的使用方法
- CSS的三種使用方法CSS
- react中hooks的使用方法ReactHook
- html表單的使用方法HTML
- Unity Plugins的使用方法UnityPlugin
- 關於InputMethodManager的使用方法
- SQL*Loader的使用方法SQL
- SQL Case when 的使用方法SQL
- vi 的使用方法(web摘抄)Web
- Oracle中“HINT”的使用方法Oracle
- spotlight on oracle的使用方法Oracle
- SQL LOADER的使用方法SQL