ImageView.ScaleType

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代码:
  1. public static final ImageView.ScaleType CENTER

  2. //图片位于视图中间,但不执行缩放比例。在XML中,使用语法:android:scaleType="center"

  3. public static final ImageView.ScaleType CENTER_CROP

  4. //按比例统一缩放图片(保持图片的尺寸比例)便于图片的两维(宽度和高度)等于或大于相应的视图维度。然后图片居中于视图。在XML中,使用语法:android:scaleType="centerCrop"

  5. public static final ImageView.ScaleType CENTER_INSIDE

  6. //按比例统一缩放图片(保持图片的尺寸比例)便于图片的两维(宽度和高度)等于或小于相应的视图维度。然后图片居中于视图。在XML中,使用语法:android:scaleType="centerInside"

  7. public static final ImageView.ScaleType FIT_CENTER

  8. //缩放图片使用CENTER。在XML中,使用语法:android:scaleType="fitCenter"

  9. public static final ImageView.ScaleType FIT_END

  10. //缩放图片使用END。在XML中,使用语法:android:scaleType="fitEnd"

  11. public static final ImageView.ScaleType FIT_START

  12. //缩放图片使用START。在XML中,使用语法:android:scaleType="fitStart"

  13. public static final ImageView.ScaleType FIT_XY

  14. //缩放图片使用FILL.。在XML中,使用语法:android:scaleType="fitXY"

  15. public static final ImageView.ScaleType MATRIX

  16. //当绘制时使用图片矩阵缩放。图片矩阵可以使用setImageMatrix(Matrix)进行设定。在XML中,使用语法:android:scaleType="matrix"
复制代码

       公共方法

java代码:
  1. public static ImageView.ScaleType valueOf (String name)

  2. 参数
  3. String name(名字)
  4. 返回值
  5. ImageView.ScaleType

  6. public static final ScaleType[] values ()
  7. 参数
  8. NULL
  9. 返回值
  10. 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代码:
  1. <activityandroid:name=".ImageViewScaleTypeDemo1"/>
  2. <activityandroid:name=".ImageViewScaleTypeDemo2"/>
  3. <activityandroid:name=".ImageViewScaleTypeDemo3"/>
  4. <activityandroid:name=".ImageViewScaleTypeDemo4"/>
  5. <activityandroid:name=".ImageViewScaleTypeDemo5"/>
  6. <activityandroid:name=".ImageViewScaleTypeDemo6"/>
  7. <activityandroid:name=".ImageViewScaleTypeDemo7"/>
  8. <activityandroid:name=".ImageViewScaleTypeDemo8"/>
复制代码

       res/layout/main.xml GridView主视图布局

java代码:

  1. <GridView
  2. android:id="@+id/gridView"
  3. android:layout_width="fill_parent"
  4. android:layout_height="fill_parent"
  5. android:numColumns="auto_fit"
  6. android:verticalSpacing="10dp"
  7. android:horizontalSpacing="10dp"
  8. android:columnWidth="90dp"
  9. android:stretchMode="columnWidth"
  10. android:gravity="center"
  11. />
复制代码

       res/layout/image.xml  ScaleType视图布局

java代码:
  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
  3. android:orientation="vertical"
  4. android:layout_width="fill_parent"
  5. android:layout_height="fill_parent"
  6. >

  7. <ImageView
  8. android:id="@+id/imageView1"
  9. android:layout_width="wrap_content"
  10. android:layout_height="wrap_content"
  11. />
  12. </LinearLayout>
复制代码

       ImageAdapter.java 继承BaseAdapter,并载入GridView的图片资源

java代码:
  1. public class ImageAdapter extends BaseAdapter
  2. {
  3. // 定义Context
  4. private Context mContext;
  5. // 定义整型数组 即图片资源
  6. private Integer[] mImageIds = {
  7. R.drawable.center,
  8. R.drawable.centercrop,
  9. R.drawable.centerinside,
  10. R.drawable.fitcenter,
  11. R.drawable.fitstart,
  12. R.drawable.fitend,
  13. R.drawable.fitxy,
  14. R.drawable.matrix,
  15. };

  16. public ImageAdapter(Context c){
  17. mContext = c;
  18. }
  19. // 获取图片的个数

  20. public int getCount(){
  21. return mImageIds.length;
  22. }

  23. // 获取图片在库中的位置

  24. public Object getItem(int position){
  25. return position;
  26. }


  27. // 获取图片ID
  28. public long getItemId(int position){
  29. return position;
  30. }

  31. public View getView(int position, View convertView, ViewGroup parent){
  32. ImageView imageView;
  33. if (convertView == null){
  34. // 给ImageView设置资源
  35. imageView = new ImageView(mContext);
  36. // 设置布局 图片显示
  37. imageView.setLayoutParams(new GridView.LayoutParams(85, 85));
  38. // 设置显示比例类型
  39. imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
  40. }else{
  41. imageView = (ImageView) convertView;
  42. }

  43. imageView.setImageResource(mImageIds[position]);
  44. return imageView;
  45. }
  46. }

你可能感兴趣的:(android,职场,休闲)