ImageView.ScaleType

ImageView.ScaleType共八種:

        1·ImageView.ScaleType.center:圖片位於視圖中間,但不執行縮放。
        2·ImageView.ScaleType.CENTER_CROP 按統一比例縮放圖片(保持圖片的尺寸比例)便於圖片的兩維(寬度和高度)等於或者大於相應的視圖的維度
        3·ImageView.ScaleType.CENTER_INSIDE按統一比例縮放圖片(保持圖片的尺寸比例)便於圖片的兩維(寬度和高度)等於或者小於相應的視圖的維度
        4·ImageView.ScaleType.FIT_CENTER縮放圖片使用center
        5·ImageView.ScaleType.FIT_END縮放圖片使用END
        6·ImageView.ScaleType.FIT_START縮放圖片使用START
        7·ImageView.ScaleType.FIT_XY縮放圖片使用XY
        8·ImageView.ScaleType.MATRIX當繪製時使用圖片矩陣縮放

        公共方法
        static ImageView.ScaleType valueOf(String name)
        final static ScaleType[] values()

java代碼:
  1. public static final ImageView.ScaleType CENTER

  2. //圖片位於視圖中間,但不執行縮放比例。在XML中,使用語法:android:scaleType="center"

  3. public static final ImageView.ScaleType CENTER_CROP

  4. //按比例統一縮放圖片(保持圖片的尺寸比例)便於圖片的兩維(寬度和高度)等於或大於相應的視圖維度。而後圖片居中於視圖。在XML中,使用語法:android:scaleType="centerCrop"

  5. public static final ImageView.ScaleType CENTER_INSIDE

  6. //按比例統一縮放圖片(保持圖片的尺寸比例)便於圖片的兩維(寬度和高度)等於或小於相應的視圖維度。而後圖片居中於視圖。在XML中,使用語法:android:scaleType="centerInside"

  7. public static final ImageView.ScaleType FIT_CENTER

  8. //縮放圖片使用CENTER。在XML中,使用語法:android:scaleType="fitCenter"

  9. public static final ImageView.ScaleType FIT_END

  10. //縮放圖片使用END。在XML中,使用語法:android:scaleType="fitEnd"

  11. public static final ImageView.ScaleType FIT_START

  12. //縮放圖片使用START。在XML中,使用語法:android:scaleType="fitStart"

  13. public static final ImageView.ScaleType FIT_XY

  14. //縮放圖片使用FILL.。在XML中,使用語法:android:scaleType="fitXY"

  15. public static final ImageView.ScaleType MATRIX

  16. //當繪製時使用圖片矩陣縮放。圖片矩陣能夠使用setImageMatrix(Matrix)進行設定。在XML中,使用語法:android:scaleType="matrix"
複製代碼

       公共方法

java代碼:
  1. public static ImageView.ScaleType valueOf (String name)

  2. 參數
  3. String name(名字)
  4. 返回值
  5. ImageView.ScaleType

  6. public static final ScaleType[] values ()
  7. 參數
  8. NULL
  9. 返回值
  10. ScaleType[]
複製代碼

       爲了全面演示ImageView.ScaleType的八種類型即CENTER,CENTER_CROP,CENTER_INSIDE,FIT_CENTER,FIT_START,FIT_END,FIT_XY,MATRIX,我在這裏經過一個GridView進行顯示,可經過點擊每一種類型的ImageButton進行詳細查看、比較。

       背景圖片爲一個像素寬度(443px)×高度(500px),大於默認的Android模擬器320×480,這樣能夠清晰的看出ImageView是否作了比例縮放,及所處位置的差別。

       AndroidManifest.xml添加各類ScaleType的Activity

java代碼:
  1. <activityandroid:name=".ImageViewScaleTypeDemo1"/>
  2. <activityandroid:name=".ImageViewScaleTypeDemo2"/>
  3. <activityandroid:name=".ImageViewScaleTypeDemo3"/>
  4. <activityandroid:name=".ImageViewScaleTypeDemo4"/>
  5. <activityandroid:name=".ImageViewScaleTypeDemo5"/>
  6. <activityandroid:name=".ImageViewScaleTypeDemo6"/>
  7. <activityandroid:name=".ImageViewScaleTypeDemo7"/>
  8. <activityandroid:name=".ImageViewScaleTypeDemo8"/>
複製代碼

       res/layout/main.xml GridView主視圖佈局

java代碼:

  1. <GridView
  2. android:id="@+id/gridView"
  3. android:layout_width="fill_parent"
  4. android:layout_height="fill_parent"
  5. android:numColumns="auto_fit"
  6. android:verticalSpacing="10dp"
  7. android:horizontalSpacing="10dp"
  8. android:columnWidth="90dp"
  9. android:stretchMode="columnWidth"
  10. android:gravity="center"
  11. />
複製代碼

       res/layout/p_w_picpath.xml  ScaleType視圖佈局

java代碼:
  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
  3. android:orientation="vertical"
  4. android:layout_width="fill_parent"
  5. android:layout_height="fill_parent"
  6. >

  7. <ImageView
  8. android:id="@+id/p_w_picpathView1"
  9. android:layout_width="wrap_content"
  10. android:layout_height="wrap_content"
  11. />
  12. </LinearLayout>
複製代碼

       ImageAdapter.java 繼承BaseAdapter,並載入GridView的圖片資源

java代碼:
  1. public class ImageAdapter extends BaseAdapter
  2. {
  3. // 定義Context
  4. private Context mContext;
  5. // 定義整型數組 即圖片資源
  6. private Integer[] mImageIds = {
  7. R.drawable.center,
  8. R.drawable.centercrop,
  9. R.drawable.centerinside,
  10. R.drawable.fitcenter,
  11. R.drawable.fitstart,
  12. R.drawable.fitend,
  13. R.drawable.fitxy,
  14. R.drawable.matrix,
  15. };

  16. public ImageAdapter(Context c){
  17. mContext = c;
  18. }
  19. // 獲取圖片的個數

  20. public int getCount(){
  21. return mImageIds.length;
  22. }

  23. // 獲取圖片在庫中的位置

  24. public Object getItem(int position){
  25. return position;
  26. }


  27. // 獲取圖片ID
  28. public long getItemId(int position){
  29. return position;
  30. }

  31. public View getView(int position, View convertView, ViewGroup parent){
  32. ImageView p_w_picpathView;
  33. if (convertView == null){
  34. // 給ImageView設置資源
  35. p_w_picpathView = new ImageView(mContext);
  36. // 設置佈局 圖片顯示
  37. p_w_picpathView.setLayoutParams(new GridView.LayoutParams(85, 85));
  38. // 設置顯示比例類型
  39. p_w_picpathView.setScaleType(ImageView.ScaleType.FIT_CENTER);
  40. }else{
  41. p_w_picpathView = (ImageView) convertView;
  42. }

  43. p_w_picpathView.setImageResource(mImageIds[position]);
  44. return p_w_picpathView;
  45. }
  46. }
相關文章
相關標籤/搜索