首页 / 操作系统 / Linux / Android API之ImageView.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<activity android:name=".ImageViewScaleTypeDemo1" /> <activity android:name=".ImageViewScaleTypeDemo2" /> <activity android:name=".ImageViewScaleTypeDemo3" /> <activity android:name=".ImageViewScaleTypeDemo4" /> <activity android:name=".ImageViewScaleTypeDemo5" /> <activity android:name=".ImageViewScaleTypeDemo6" /> <activity android:name=".ImageViewScaleTypeDemo7" /> <activity android: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视图布局<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns: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; } }