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代碼:
- 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代碼:
- <activityandroid:name=".ImageViewScaleTypeDemo1"/>
- <activityandroid:name=".ImageViewScaleTypeDemo2"/>
- <activityandroid:name=".ImageViewScaleTypeDemo3"/>
- <activityandroid:name=".ImageViewScaleTypeDemo4"/>
- <activityandroid:name=".ImageViewScaleTypeDemo5"/>
- <activityandroid:name=".ImageViewScaleTypeDemo6"/>
- <activityandroid:name=".ImageViewScaleTypeDemo7"/>
- <activityandroid:name=".ImageViewScaleTypeDemo8"/>
複製代碼
res/layout/main.xml GridView主視圖佈局
java代碼:
- <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"
- />
複製代碼
res/layout/p_w_picpath.xml ScaleType視圖佈局
java代碼:
- <?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/p_w_picpathView1"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- />
- </LinearLayout>
複製代碼
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;
- }
- }