android widget ImageView用法詳解
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow
也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!
http://longshuai2007.blog.163.com/blog/static/142094414201161045150886/
結構
繼承關係
public class View.OnClickListner extends View
java.lang.Object
android.view.View
android.widget.ImageView
直接子類
ImageButton, QuickContactBadge
間接子類
ZoomButton
類概述
顯示任意影象,例如圖示。ImageView類可以載入各種來源的圖片(如資源或圖片庫),需要計算影象的尺寸,比便它可以在其他佈局中使用,並提供例如縮放和著色(渲染)各種顯示選項。
巢狀類
enum ImageView.ScaleType
將圖片邊界縮放,以適應檢視邊界時的可選項
XML屬性
屬性名稱 |
描述 |
|||||||||||||||||||||||||||
android:adjustViewBounds |
設定該屬性為真可以在 ImageView 調整邊界時保持圖片的縱橫比例。(譯者注:需要與maxWidth、MaxHeight一起使用,否則單獨使用沒有效果。) |
|||||||||||||||||||||||||||
android:baseline |
檢視內基線的偏移量 |
|||||||||||||||||||||||||||
android:baselineAlignBottom |
如果為true,影象檢視將基線與父控制元件底部邊緣對齊。 |
|||||||||||||||||||||||||||
android:cropToPadding |
如果為真,會剪下圖片以適應內邊距的大小。(譯者注:是否擷取指定區域用空白代替。單獨設定無效果,需要與scrollY一起使用,效果如下,實現程式碼見程式碼部分:
|
|||||||||||||||||||||||||||
android:maxHeight |
為檢視提供最大高度的可選引數。(譯者注:單獨使用無效,需要與setAdjustViewBounds一起使用。如果想設定圖片固定大小,又想保持圖片寬高比,需要如下設定: 1) 設定setAdjustViewBounds為true; 2) 設定maxWidth、MaxHeight; 3) 設定設定layout_width和layout_height為wrap_content。) |
|||||||||||||||||||||||||||
android:maxWidth |
為檢視提供最大寬度的可選引數。 |
|||||||||||||||||||||||||||
android:scaleType |
控制為了使圖片適合 ImageView 的大小,應該如何變更圖片大小或移動圖片。一定是下列常量之一:
(譯者注:設定圖片的填充方式。) |
|||||||||||||||||||||||||||
android:src |
設定可繪製物件作為 ImageView 顯示的內容 |
|||||||||||||||||||||||||||
android:tint |
為圖片設定著色顏色。(譯者注:將圖片渲染成指定的顏色。見下圖:
|
公共方法
public final void clearColorFilter ()
(譯者注:清除顏色過濾,參見這裡)
public int getBaseline ()
返回部件頂端到文字基線的偏移量。如果小部件不支援基線對齊,該方法返回 -1。
返回值:小部件頂端到文字基線的偏移量;或者是 -1 當小部件不支援基線對齊時。
public boolean getBaselineAlignBottom ()
返回當前檢視基線是否將考慮檢視的底部。
參見
setBaselineAlignBottom(boolean)
public Drawable getDrawable ()
返回檢視的可繪製物件;如果沒有關聯可繪製物件,返回空。
public Matrix getImageMatrix ()
返回檢視的選項矩陣。當繪製時,應用於檢視的可繪製物件。如果沒有矩陣, 函式返回空。不要更改這個矩陣。如果你要為可繪製物件設定不同的矩陣, 請呼叫 setImageMatrix()。
public ImageView.ScaleType getScaleType ()
返回當前 ImageView 使用的縮放型別。
相關 XML 屬性
android:scaleType
參見
ImageView.ScaleType
public void invalidateDrawable (Drawable dr)
使指定的可繪製物件失效。
引數
dr :要設為失效的可繪製物件。
public void jumpDrawablesToCurrentState ()
呼叫與檢視相關的所有可繪製物件的Drawable.jumpToCurrentState()方法。
public int[] onCreateDrawableState (int extraSpace)
為當前檢視生成新的 Drawable 狀態時發生。當檢視系統檢測到快取的可繪製物件失效時,呼叫該方法.你可以使用 getDrawableState() 方法重新取得當前的狀態。
引數
extraSpace:如果為非零,該值為你要在返回值的陣列中存放的你自己的狀態資訊的數量。
返回值
返回儲存了檢視的當前 Drawable 狀態的陣列。
public void setAdjustViewBounds (boolean adjustViewBounds)
當你需要在 ImageView 調整邊框時保持可繪製物件的比例時,將該值設為真。
引數
adjustViewBounds:是否調整邊框,以保持可繪製物件的原始比例。
相關 XML 屬性
android:adjustViewBounds
public void setAlpha (int alpha)
(譯者注:設定透明度)
public void setBaseline (int baseline)
設定部件頂部邊界文字基線的偏移量。這個值覆蓋setBaselineAlignBottom(boolean)設定的屬性值。
引數
baseline :使用的基線,或不提供設定為-1。
相關 XML屬性
android:baseline
參見
setBaseline(int)
public void setBaselineAlignBottom (boolean aligned)
設定是否設定檢視底部的檢視基線。設定這個值覆蓋setBaseline()的所有呼叫。
引數
aligned:如果為true,影象檢視將基線與父控制元件底部邊緣對齊。
相關 XML屬性
android:baselineAlignBottom
public final void setColorFilter (int color)
為圖片設定著色選項。採用SRC_ATOP合成模式。
引數
color:應用的著色顏色。
相關 XML 屬性
android:tint
public void setColorFilter (ColorFilter cf)
為圖片應用任意顏色濾鏡。
引數
cf:要應用的顏色濾鏡(可能為空)
public final void setColorFilter (int color, PorterDuff.Mode mode)
為圖片設定著色選項。
引數
color: 應用的著色顏色。
mode: 如何著色。標準模式為 SRC_ATOP。
相關 XML 屬性
android:tint
public void setImageBitmap (Bitmap bm)
設定點陣圖作為該 ImageView 的內容。
引數
bm :設定的點陣圖。
public void setImageDrawable (Drawable drawable)
設定可繪製物件為該 ImageView 顯示的內容。
引數
drawable 設定的可繪製物件。
public void setImageLevel (int level)
設定圖片的等級,當圖片來自於 LevelListDrawable 時。(譯者注:使用參見這裡)
引數
level 圖片的新的等級。
public void setImageMatrix (Matrix matrix)
(譯者注:矩陣變換)
public void setImageResource (int resId)
通過資源ID設定可繪製物件為該 ImageView 顯示的內容。
注意:該操作讀取點陣圖,並在 UI 執行緒中解碼,因此可能導致反應遲緩。 如果反應遲緩,可以考慮用 setImageDrawable(Drawable)、 setImageBitmap(Bitmap) 或者 BitmapFactory 代替。
引數
resId 可繪製物件的資源標識。
相關 XML 屬性
android:src
public void setImageState (int[] state, boolean merge)
(譯者注:設定檢視的可見和不可見,使用參見這裡)
public void setImageURI (Uri uri)
設定指定的 URI 為該 ImageView 顯示的內容。
注意:該操作讀取點陣圖,並在 UI 執行緒中解碼,因此可能導致反應遲緩。 如果反應遲緩,可以考慮用 setImageDrawable(Drawable)、 setImageBitmap(Bitmap) 或者 BitmapFactory 代替。
引數
uri 影象的 URI。
public void setMaxHeight (int maxHeight)
用於設定該檢視支援的最大高度的可選引數。只有 setAdjustViewBounds(boolean) 為真時有效。要設定影象最大尺寸為 100×100,並保持原始比率,做法如下:
1) 設定 adjustViewBounds 為真;
2) 設定 maxWidth 和 maxHeight 為 100;
3) 設定寬、高的佈局引數為 WRAP_CONTENT。
注意,如果原始影象較小,即使設定了該引數,影象仍然要比 100×100 小。如果要設定圖片為 固定大小,需要在佈局引數中指定大小,並使用 setScaleType(ImageView.ScaleType) 函式來檢測,如何 將其調整到適當的大小。
引數
maxHeight 該檢視的最大高度。
相關 XML 屬性
android:maxHeight
public void setMaxWidth (int maxWidth)
用於設定該檢視支援的最大寬度的可選引數。只有 setAdjustViewBounds(boolean) 為真時有效。要設定影象最大尺寸為 100×100,並保持原始比率,做法如下:
4) 設定 adjustViewBounds 為真;
5) 設定 maxWidth 和 maxHeight 為 100;
6) 設定寬、高的佈局引數為 WRAP_CONTENT。
注意,如果原始影象較小,即使設定了該引數,影象仍然要比 100×100 小。如果要設定圖片為 固定大小,需要在佈局引數中指定大小,並使用 setScaleType(ImageView.ScaleType) 函式來檢測,如何 將其調整到適當的大小。
引數
maxWidth:該檢視的最大寬度。
相關 XML 屬性
android:maxWidth
public void setScaleType (ImageView.ScaleType scaleType)
控制影象應該如何縮放和移動,以使影象與 ImageView 一致。
引數
scaleType:需要的縮放方式。
相關 XML 屬性
android:scaleType
public void setSelected (boolean selected)
改變檢視的選中狀態。檢視有選中和未選中兩個狀態。注意,選擇狀態不同於焦點。 典型的選中的檢視是象 ListView 和 GridView 這樣的 AdapterView 中顯示的 內容;選中的內容會顯示為高亮。
引數
selected :為真,將檢視設為選中狀態;否則為假。
受保護方法
protected void drawableStateChanged ()
在檢視狀態的變化影響到所顯示可繪製物件的狀態時呼叫該方法。
覆蓋該方法時,要確保呼叫了父類的該方法。
protected void onDraw (Canvas canvas)
實現該方法,用於自己繪製內容。
引數
canvas 用於繪製背景的畫布。
protected void onMeasure (int widthMeasureSpec, int heightMeasureSpec)
評估檢視及其內容,以決定其寬度和高度.此方法由 measure(int, int) 呼叫,子類可以過載以提供更精確、更有效率的衡量其內容尺寸的方法。
約定: 覆蓋該方法時,必須呼叫 setMeasuredDimension(int, int) 方法來儲存評估結果的檢視的寬度和高度.如果忘記將導致 measure(int, int) 方法丟擲IllegalStateException異常。要有效的利用父類的 onMeasure(int, int)方法。
基類測量的是背景的大小,除非 MeasureSpec 允許超過背景.子類應該重寫 onMeasure(int, int) 方法,以為其內容提供更適合的大小。
如果重寫了該方法,子類要確保其高度和寬度大於等於檢視的最小高度和寬度. (getSuggestedMinimumHeight() 和 getSuggestedMinimumWidth())
引數
widthMeasureSpec :父檢視要求的橫向空間大小.該要求由 View.MeasureSpec 進行了編碼處理。
heightMeasureSpec:父檢視要求的縱向空間大小.該要求由 View.MeasureSpec 進行了編碼處理。
protected boolean onSetAlpha (int alpha)
透明度改變時執行。子類可以使用該方法指定透明度值,然後返回真; 在呼叫 onDraw() 時,使用該透明度值。如果返回假,則先在不可見的快取中繪製檢視, 完成該請求;看起來不錯,但是可能相對於在子類中繪製要慢。預設實現返回假。
引數
alpha:應用到檢視的透明度值 (0…255)。
返回值
如果該類可以繪製該阿爾法值返回真。
protected boolean setFrame (int l, int t, int r, int b)
為檢視指定大小和位置。 該方法有佈局呼叫。
引數
l :左側位置,相對於父容器。
t :頂部位置,相對於父容器。
r : 右側位置,相對於父容器。
b : 底部位置,相對於父容器。
返回值
true 如果新的大小和位置與之前的不同,返回真。
protected boolean verifyDrawable (Drawable dr)
如果你的檢視子類顯示自己的可繪製物件,他應該重寫此方法併為自己的每個可繪製物件返回真。該函式允許為這些可繪製物件準備動畫效果。
重寫此方法時,要保證呼叫其父類的該方法。
引數
dr:待校驗的可繪製物件.如果是你顯示的物件之一,返回真;否則返回呼叫父類的返回值。
返回值
boolean 如果可繪製物件已經顯示在檢視上了,返回真;否則返回假,不允許動畫效果。