Welcome 微信登录

首页 / 操作系统 / 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;    } }