`
韩悠悠
  • 浏览: 827314 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

imageView.setScaleType

 
阅读更多

imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);

 

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()

 

枚举值

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"

 

公共方法

public static ImageView.ScaleType valueOf (String name) 

参数

String name(名字)

返回值

ImageView.ScaleType

 

public static final ScaleType[] values () 

参数

  NULL

返回值

ScaleType[]

 

               

        

示例代码:

为了全面演示ImageView.ScaleType的八种类型即CENTERCENTER_CROPCENTER_INSIDEFIT_CENTERFIT_STARTFIT_ENDFIT_XYMATRIX,我在这里通过一个GridView进行显示,可通过点击每一种类型的ImageButton进行详细查看、比较。

背景图片为一个像素宽度(443px)×高度(500px),大于默认的Android模拟器320×480,这样可以清晰的看出ImageView是否做了比例缩放,及所处位置的差异。

 

1       AndroidManifest.xml添加各种ScaleTypeActivity

<activityandroid:name=".ImageViewScaleTypeDemo1"/>

      <activityandroid:name=".ImageViewScaleTypeDemo2"/>

      <activityandroid:name=".ImageViewScaleTypeDemo3"/>

      <activityandroid:name=".ImageViewScaleTypeDemo4"/>

      <activityandroid:name=".ImageViewScaleTypeDemo5"/>

      <activityandroid:name=".ImageViewScaleTypeDemo6"/>

      <activityandroid:name=".ImageViewScaleTypeDemo7"/>

      <activityandroid: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视图布局

<?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/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;

    }

分享到:
评论

相关推荐

    带有倒影的Gallery

    带有倒影的图片滑动效果,注释非常详细。 部分代码如下: for (int imageId : mImageIds) { ...// imageView.setScaleType(ScaleType.MATRIX); mImages[index++] = imageView; } return true; }

    Android开发中ImageView的scaletype属性用法分析

    ImageView的属性android:scaleType,即 ImageView.setScaleType(ImageView.ScaleType)。android:scaleType是控制图片如何 resized/moved来匹对ImageView的size。ImageView.ScaleType / android:scaleType值的意义...

    android实现手机触屏版的左右图片滚动.rar

    android实现手机触屏版的左右... iv.setScaleType(ImageView.ScaleType.FIT_XY);//为ImageView设置比例类型  iv.setLayoutParams(new Gallery.LayoutParams(188,250));//设置布局残顺  完整代码请在本页下载源码包。

    DragView:这是个可拖动的悬浮按钮

    imageView.setScaleType(ImageView.ScaleType.CENTER_CROP); imageView.setImageResource(R.mipmap.ic_launcher_round); imageView.setOnClickListener(v -&gt; Toast.makeText(MainActivity.this, "点击了...", Toast....

    Android九宫格图片控件NineGridImageView.zip

     imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);  return imageView;  }}T 是你图片的数据类型, 你可以简单的使用 String 类型也可以是你自定义的类型;你必须重写 onDisplayImage(Context context,...

    超有用的安卓学习材料9

    85、ImageView的属性android:scaleType,即ImageView.setScaleType 202 86、开机启动 203 87、关机 204 88、Android 程序获取、设置铃声和音量 205 89、Android 风格与主题(style and theme) 206 90、java用反射...

    Android 即时添加textview、imageview内容项.rar

     ii.setScaleType(ImageView.ScaleType.FIT_XY);  ii.setLayoutParams(new Gallery.LayoutParams(100,98));  ll.addView(ii);//添加到LinearLayout中  TextView tv=new TextView(Sample_5_4.this);//初始化...

    android 五子棋源码

    imageView.setScaleType(ScaleType.CENTER_CROP); imageViews.add(imageView); } dots = new ArrayList(); dots.add(findViewById(R.id.v_dot0)); dots.add(findViewById(R.id.v_dot1)); dots....

    Android设置桌面壁纸及恢复默认墙纸.rar

     iv.setScaleType(ImageView.ScaleType.CENTER_CROP);  iv.setLayoutParams(new Gallery.LayoutParams(120, 120));//设置相框中元素的大小  将设置壁纸和恢复壁纸的功能写入按钮监听事件中,通过单击按钮来激活这...

    Android应用程序图标动画效果源代码

    部分源代码:   ImageView i = new ImageView(IconAnimation.this); ResolveInfo info = mApps.get(position % mApps.size());... i.setImageDrawable(info.... i.setScaleType(ImageView.ScaleType.FIT_CENTER)

    Android抛物线下载动画制作过程

    下载动画经常出现在下载需求多的app中,比如游戏下载平台,应用市场…… 先看看效果图: 实现 private void startAnim() { ... logo.setScaleType(ImageView.ScaleType.FIT_XY); logo.setImageBitmap(bitmap);

    android点餐系统 部分功能源代码

    showImg.setScaleType(ImageView.ScaleType.CENTER); // 图片居中显示 showImg.setLayoutParams(new LinearLayout.LayoutParams( LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)); showImg....

Global site tag (gtag.js) - Google Analytics