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代码:
复制代码
公共方法
java代码:
复制代码
为了全面演示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代码:
复制代码
res/layout/p_w_picpath.xml ScaleType视图布局
java代码:
复制代码
ImageAdapter.java 继承BaseAdapter,并载入GridView的图片资源
java代码:
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代码:
- 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"
公共方法
java代码:
- 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是否做了比例缩放,及所处位置的差异。
AndroidManifest.xml添加各种ScaleType的Activity
java代码:
res/layout/main.xml GridView主视图布局
java代码:
- 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"
- />
res/layout/p_w_picpath.xml ScaleType视图布局
java代码:
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- >
- android:id="@+id/p_w_picpathView1"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- />
ImageAdapter.java 继承BaseAdapter,并载入GridView的图片资源
java代码:
- 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 p_w_picpathView;
- if (convertView == null){
- // 给ImageView设置资源
- p_w_picpathView = new ImageView(mContext);
- // 设置布局 图片显示
- p_w_picpathView.setLayoutParams(new GridView.LayoutParams(85, 85));
- // 设置显示比例类型
- p_w_picpathView.setScaleType(ImageView.ScaleType.FIT_CENTER);
- }else{
- p_w_picpathView = (ImageView) convertView;
- }
- p_w_picpathView.setImageResource(mImageIds[position]);
- return p_w_picpathView;
- }
- }