ImageView繼承自View組件,主要功能用來顯示圖片,實際上他能顯示的不只是圖片,Drawable對象均可以用ImageView來顯示。php
ImageView派生了ImageButton、ZoomButton等組件,具體的派生和繼承關係能夠查看API文檔,我這邊打開實在慢,就再也不截圖了。html
本地API打開太慢了,本想放棄截圖,不過在網上看到android api中文網站,打開速度不錯,因此繼承關係以下圖:android
在這裏咱們能夠看到,ImageView繼承自View,直接子類是ImageButton和QuickContactBadge,間接子類是ZoomButton。api
這裏我也發一下這個API在線網址,打開慢的能夠試一下這個:瀏覽器
XML屬性學習 |
相關方法測試 |
說明網站 |
android:adjustViewBounds | setAdjustViewBounds(boolean) | 設置ImageView是否調整本身的邊界來保持所顯示圖片的長寬比 |
android:cropToPadding | setCropToPadding(boolean) | 若是將該屬性設置爲true,該組件將會被截取到保留該ImageView的padding |
android:maxHeight | setMaxHeight(int) | 設置ImageView的最大高度 |
android:maxWidth | setMaxWidth(int) | 設置ImageView的最大寬度 |
android:scaleType | setScaleType(ImageView.ScaleType) | 設置所顯示的圖片如何縮放或移動以適應ImageView的大小 |
android:src | setImageResource(int) | 設置ImageView所顯示的Drawable對象的ID |
scaleType是一個重要的屬性,它可設置的值以下:ui
值 |
說明 |
ImageView.Scale.MATRIX | 使用Matrix方式進行縮放 |
ImageView.Scale.FIT_XY | 對圖片橫向、縱向獨立縮放,使得該圖徹底適應於ImageView,圖片的縱橫比可能會改變 |
ImageView.Scale.FIT_START | 保持縱橫比縮放圖片,直到該圖能徹底顯示到ImageView,從ImageView的左上角開始顯示 |
ImageView.Scale.FIT_CENTER | 保持縱橫比縮放圖片,直到該圖能徹底顯示到ImageView,從ImageView的中間顯示 |
ImageView.Scale.FIT_END | 保持縱橫比縮放圖片,直到該圖能徹底顯示到ImageView,從ImageView的右下角顯示 |
ImageView.Scale.CENTER | 把圖片放到ImageView中間,不進行任何縮放 |
ImageView.Scale.CENTER_CROP | 保持縱橫比縮放圖片使得圖片能徹底覆蓋ImageView,最要圖片最短邊能顯示便可。 |
ImageView.Scale.CENTER_INSIDE | 保持縱橫比縮放圖片,以使得ImageView能徹底顯示該圖片 |
爲了能控制ImageView,API提供了以下操做方法:
方法名稱 |
說明 |
setImageBitmap(Bitmap bm) | 使用Bitmap對象設置ImageView顯示的圖片 |
setImageDrawable(Drawable drawable) | 使用Drawable對象設置ImageView顯示的圖片 |
setImageResource(int resId) | 使用資源ID設置ImageView顯示的圖片 |
setImageURI(Uri uri) | 使用圖片的URI地址設置ImageView顯示的圖片 |
ImageView的功能比較簡單,這裏借用瘋三的實例作一個簡單的圖片瀏覽器示範ImageView的使用方法。
示例代碼以下:
頁面佈局主要採用線性佈局,上方嵌套了一個線性佈局,用於居中放了三個按鈕,主要實現切換圖片和增減透明度的功能。
後臺代碼以下圖:
代碼比較簡單,圈中的1部分主要完成按鈕1便是「下一張」的功能。圈中的2部分完成透明度的增減,屏幕顯示問題透明度的減小部分代碼截圖不全,不過你們能夠自行補全,私下測試一下ImageView更多的功能。
在書本中咱們能學到的都是基本的使用方法,而對於更多的擴展使用方法廣大萬能的萬能的網友也都分享了不少,這裏再也不作COPY和粘貼,我直接給出來網址,你們自行參考一下。
1.圖解說明android 中ImageView的scaletype屬性
2.Android ApiDemos 系列解析【View-ImageView/ImageButton】
4.Android學習開發之路4——圖片顯示imageVIew
Button與ImageButton的區別在於,Button按鈕上顯示的是文字,而ImageButton上顯示的圖片。須要注意的一點就是爲ImageButton設置Text屬性沒有做用,由於本質上ImageButton是ImageView,即便指定了Text屬性,也不會顯示任何文字。若是使用ImageButton的話,圖片按鈕能夠指定src屬性,該屬性能夠 設置靜態的圖片,也能夠設置自定義的Drawable對象,實現出用戶自定義的圖片按鈕。
而ZoomButton從字面就能夠看出來他是個放大/縮小功能的按鈕,它繼承自ImageButton,使用方法也基本相似於ImageButton,android默認提供了btn_minus、btn_plus兩個Drawable資源,只要給src屬性賦這兩個資源值,便可實現對應的按鈕樣式。
Android還提供一個ZoomControls組件,該組件至關於組合了「放大」,「縮小」兩個按鈕,並容許分別爲他們綁定不一樣的監聽器。(ZoomButton是單個按鈕,ZoomControls是組合了兩個按鈕)。
下面的示例代碼同時演示了這幾個組件。
說明以下:
1.第一個按鈕的src是btn_ok是藍色的按鈕圖標,我本身從網上下載的按鈕,這是個固定不變的按鈕圖標。
2.第二個按鈕是可變的按鈕,按鈕默認顯示是綠色,按下以後變成紅色,鬆開後變成綠色,使用了selector資源文件定義,下面會貼出代碼。
3.使用LinearLayout線性佈局,內容添加了連個ZoomButton,使用系統自帶的放大縮小的圖標顯示,Linearlayout的佈局設置爲水平居中。
4.定義了一個ZoomControls組件,咱們能夠看到他自身就帶了兩個按鈕。
其中給出btn_Selector的代碼以下:
主要設置了按鈕得到焦點時顯示的圖片和按下後顯示的圖片,最後一行設置默認顯示的圖片。
QuickContactBadge繼承了ImageView,它的本質也是圖片,也能夠經過android:src屬性指定它顯示的圖片。QuickContackBadge額外功能是:該圖片能夠關聯到手機中指定聯繫人,當用戶單擊該圖片時,系統將打開相應的聯繫人的聯繫方式界面。
由於我這邊虛擬機添加不上聯繫人,因此這裏也再也不單獨作代碼演示,給出幾個學習地址,參考學習一下。
1.Android2.2 API 中文文檔系列(8) —— QuickContactBadge
由於工做的緣由,學習也是斷斷續續,可是我想我也會鼓勵本身慢慢學下去,分享學習心得的同時也能夠加深記憶。但願看完文章以爲對本身有用的朋友點個推薦給我一點鼓勵,謝謝你們。