imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);

 

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()


枚举值

public static final ImageView.ScaleType CENTER 

图片位于视图中间,但不执行缩放比例。在XML中,使用语法:android:scaleType="center"

public static final ImageView.ScaleType CENTER_CROP 

按比例统一缩放图片(保持图片的尺寸比例)便于图片的两维(宽度和高度)等于或大于相应的视图维度。然后图片居中于视图。在XML中,使用语法:android:scaleType="centerCrop"

public static final ImageView.ScaleType CENTER_INSIDE 

按比例统一缩放图片(保持图片的尺寸比例)便于图片的两维(宽度和高度)等于或小于相应的视图维度。然后图片居中于视图。在XML中,使用语法:android:scaleType="centerInside"

public static final ImageView.ScaleType FIT_CENTER 

缩放图片使用CENTER。在XML中,使用语法:android:scaleType="fitCenter"

public static final ImageView.ScaleType FIT_END 

缩放图片使用END。在XML中,使用语法:android:scaleType="fitEnd"

public static final ImageView.ScaleType FIT_START 

缩放图片使用START。在XML中,使用语法:android:scaleType="fitStart"

public static final ImageView.ScaleType FIT_XY 

缩放图片使用FILL.。在XML中,使用语法:android:scaleType="fitXY"

public static final ImageView.ScaleType MATRIX 

当绘制时使用图片矩阵缩放。图片矩阵可以使用setImageMatrix(Matrix)进行设定。在XML中,使用语法:android:scaleType="matrix"


公共方法

public static ImageView.ScaleType valueOf (String name) 

参数

String name(名字)

返回值

ImageView.ScaleType

 

public static final ScaleType[] values () 

参数

  NULL

返回值

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是否做了比例缩放,及所处位置的差异。

 

(1)       AndroidManifest.xml添加各种ScaleType的Activity

<activityandroid:name=".ImageViewScaleTypeDemo1"/>
      <activityandroid:name=".ImageViewScaleTypeDemo2"/>
      <activityandroid:name=".ImageViewScaleTypeDemo3"/>
      <activityandroid:name=".ImageViewScaleTypeDemo4"/>
      <activityandroid:name=".ImageViewScaleTypeDemo5"/>
      <activityandroid:name=".ImageViewScaleTypeDemo6"/>
      <activityandroid:name=".ImageViewScaleTypeDemo7"/>
      <activityandroid:name=".ImageViewScaleTypeDemo8"/>

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

<GridView
    android:id="@+id/gridView"
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"
    android:numColumns="auto_fit"
    android:verticalSpacing="10dp"
    android:horizontalSpacing="10dp"
    android:columnWidth="90dp"
    android:stretchMode="columnWidth"
    android:gravity="center"
    />

(3)      res/layout/image.xml  ScaleType视图布局

<?xmlversion="1.0"encoding="utf-8"?>
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
    
    <ImageView
     android:id="@+id/imageView1"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content" 
    />
</LinearLayout>

(4)      ImageAdapter.java 继承BaseAdapter,并载入GridView的图片资源

public class ImageAdapter extends BaseAdapter
{
    // 定义Context
    private Context      mContext;
    // 定义整型数组 即图片资源
    private Integer[] mImageIds  = 
    { 
           R.drawable.center, 
           R.drawable.centercrop, 
           R.drawable.centerinside, 
           R.drawable.fitcenter, 
           R.drawable.fitstart, 
           R.drawable.fitend, 
           R.drawable.fitxy,
           R.drawable.matrix,
    };
 
    public ImageAdapter(Context c)
    {
       mContext = c;
    }
 
    // 获取图片的个数
    public int getCount()
    {
       return mImageIds.length;
    }
 
    // 获取图片在库中的位置
    public Object getItem(int position)
    {
       return position;
    }
 
 
    // 获取图片ID
    public long getItemId(int position)
    {
       return position;
    }
 
 
    public View getView(int position, View convertView, ViewGroup parent)
    {
       ImageView imageView;
       if (convertView == null)
       {
           // 给ImageView设置资源
           imageView = new ImageView(mContext);
           // 设置布局 图片显示
           imageView.setLayoutParams(new GridView.LayoutParams(85, 85));
           // 设置显示比例类型
           imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
       }
       else
       {
           imageView = (ImageView) convertView;
       }
 
imageView.setImageResource(mImageIds[position]);
       return imageView;
    }