为了全面演示ImageView.ScaleType的八种类型即CENTER,CENTER_CROP,CENTER_INSIDE,FIT_CENTER,FIT_START,FIT_END,FIT_XY,MATRIX,我在这里通过一个GridView进行显示,可通过点击每一种类型的ImageButton进行详细查看、比较。
(1)AndroidManifest.xml 添加各种ScaleType的Activity
(2) res/layout/main.xml 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视图布局 < xml version="1.0" encoding="utf-8" > android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > android:id="@+id/imageView1" android:layout_width="wrap_content" android:layout_height="wrap_content" /> (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; } }