1. 程式人生 > >android widget ImageView用法詳解

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 的大小,應該如何變更圖片大小或移動圖片。一定是下列常量之一:

常量

描述

matrix

0

用矩陣來繪圖

fitXY

1

拉伸圖片(不按比例)以填充View的寬高

fitStart

2

按比例拉伸圖片,拉伸後圖片的高度為View的高度,且顯示在View的左邊

fitCenter

3

按比例拉伸圖片,拉伸後圖片的高度為View的高度,且顯示在View的中間

fitEnd

4

按比例拉伸圖片,拉伸後圖片的高度為View的高度,且顯示在View的右邊

 

center

5

按原圖大小顯示圖片,但圖片寬高大於View的寬高時,截圖圖片中間部分顯示

centerCrop

6

按比例放大原圖直至等於某邊View的寬高顯示。

centerInside

7

當原圖寬高或等於View的寬高時,按原圖大小居中顯示;反之將原圖縮放至View的寬高居中顯示。

(譯者注:設定圖片的填充方式。)

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 如果可繪製物件已經顯示在檢視上了,返回真;否則返回假,不允許動畫效果。


           

給我老師的人工智慧教程打call!http://blog.csdn.net/jiangjunshow

這裡寫圖片描述