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代码:







复制代码

       res/layout/main.xml GridView主视图布局

java代码:

  1. android:id="@+id/gridView"
  2. android:layout_width="fill_parent"
  3. android:layout_height="fill_parent"
  4. android:numColumns="auto_fit"
  5. android:verticalSpacing="10dp"
  6. android:horizontalSpacing="10dp"
  7. android:columnWidth="90dp"
  8. android:stretchMode="columnWidth"
  9. android:gravity="center"
  10. />
复制代码

       res/layout/p_w_picpath.xml  ScaleType视图布局

java代码:

  1. android:orientation="vertical"
  2. android:layout_width="fill_parent"
  3. android:layout_height="fill_parent"
  4. >

  5. android:id="@+id/p_w_picpathView1"
  6. android:layout_width="wrap_content"
  7. android:layout_height="wrap_content"
  8. />
复制代码

       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. }