`
韩悠悠
  • 浏览: 842584 次
  • 性别: 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;

    }

分享到:
评论

相关推荐

    ImageView.zip

    imageView.setScaleType(ImageView.ScaleType.FIT_CENTER); ``` 在实际应用中,你可能还需要处理图片加载优化问题,比如使用内存缓存、异步加载等策略,以防止内存溢出和提高用户体验。对于更复杂的图片操作,可以...

    20177720349田帝豪实验三.doc

    - `imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);` 会让图片居中并缩放以适应ImageView的大小,保持纵横比。 - `imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);` 会填充整个ImageView,...

    android 循环gallery 选中放大 按键控制

    imageView.setScaleType(ImageView.ScaleType.CENTER_INSIDE); } else { imageView = (ImageView) convertView; } // 加载图片 imageView.setImageResource(getImageResId(imageList.get(position))); // ...

    Android应用开发-ImageView控件.pptx

    在Java代码中,可以使用`imageView.setScaleType(ImageView.ScaleType.CENTER);`这样的方式动态设置ImageView的缩放类型。 总的来说,理解并熟练运用ImageView的这些属性和功能对于一个Android开发者来说至关重要,...

    Android中imageview.ScaleType使用方法详细介绍

    在代码中,我们可以使用imageView.setScaleType(ImageView.ScaleType.CENTER_CROP)来设置ScaleType。在XML布局文件中,我们可以使用android:scaleType="centerCrop"来设置ScaleType。 ScaleType是Android中...

    imageView 放大 居中 左右移动

    imageView.setScaleType(ImageView.ScaleType.FIT_CENTER); // 居中显示 imageView.animate().scaleX(1.5f).scaleY(1.5f).start(); // 动态放大 imageView.setTranslationX(100); // 向右移动100dp ``` 6. **...

    图片放大缩小

    imageView.setScaleType(ImageView.ScaleType.CENTER_CROP); scaleTypeIndex = 1; } else { imageView.setScaleType(ImageView.ScaleType.FIT_CENTER); scaleTypeIndex = 0; } } }); ``` 4. **优化图片...

    ImageView 宽度设定,高度按比例缩放

    imageView.setScaleType(ImageView.ScaleType.FIT_CENTER); // 或者使用CENTER_CROP imageView.requestLayout(); // 强制更新布局 ``` 在处理网络图片时,可以使用Glide或Picasso这样的库加载图片。它们提供了自动...

    Android开发之ImageView通过matrix实现两点缩放和图片拖动

    imageView.setScaleType(ImageView.ScaleType.MATRIX); imageView.setOnTouchListener(this); scaleGestureDetector = new ScaleGestureDetector(this, this); } @Override public boolean onTouch(View v, ...

    Android手势ImageView三部曲 第三部

    imageView.setScaleType(ImageView.ScaleType.MATRIX); imageView.setImageMatrix(currMatrix); // 创建ScaleGestureDetector实例 mScaleDetector = new ScaleGestureDetector(this, new ScaleListener()); } ...

    android 动态旋转图片 Bitmap与Matrix旋转ImageView

    4. 设置ImageView的scaleType为matrix,`imageView.setScaleType(ImageView.ScaleType.MATRIX);` 5. 应用Matrix到ImageView,`imageView.setImageMatrix(matrix);` 需要注意的是,由于旋转可能会导致Bitmap的尺寸...

    安卓实现图片缩放

    imageView.setScaleType(ImageView.ScaleType.MATRIX); imageView.setImageBitmap(Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(), bitmap.getHeight(), matrix, true)); ``` 在这个例子中,`scalingFactorX...

    ShowImageView

    imageView.setScaleType(ImageView.ScaleType.CENTER_CROP); ``` 此外,`ImageView`还可以设置占位符和错误图,当图片正在加载或加载失败时显示: ```java Glide.with(context) .load(...

    android 动态放大缩小ImageView里的图片

    imageView.setScaleType(ImageView.ScaleType.MATRIX); imageView.setImageMatrix(matrix); ``` `postScale()`方法会将当前Matrix上的变换与传入的缩放因子相乘,保持原始宽高比不变。`setScaleType()`则设定...

    Android编程实现的超炫图片浏览器

    imageView.setScaleType(ImageView.ScaleType.FIT_CENTER); imageView.setPadding(10, 10, 10, 10); } else { imageView = (ImageView) convertView; } imageView.setImageBitmap(createReflectedImage...

    图片缩放和移动

    imageView.setScaleType(ImageView.ScaleType.MATRIX); // 设置ScaleType为MATRIX matrix.postScale(scaleFactor, scaleFactor); // 缩放因子,如1.5f表示放大1.5倍 imageView.setImageMatrix(matrix); // 应用变换...

    Imageview之图片填充模式fitcenter的实现

    imageView.setScaleType(ImageView.ScaleType.FIT_CENTER); ``` 总之,`fitCenter`是Android中一种重要的图片填充模式,它能确保图片居中显示且不失真。通过研究和实践,开发者不仅可以掌握`fitCenter`,也能更好地...

    安卓开发-android相册系统(用Matrix实现).zip.zip

    imageView.setScaleType(ImageView.ScaleType.MATRIX); ``` 然后,我们可以创建一个Matrix实例并将其设置到ImageView上: ```java Matrix matrix = new Matrix(); imageView.setImageMatrix(matrix); ``` 当用户...

    Android ImageView ScaleTypeDemo

    imageView.setScaleType(ImageView.ScaleType.CENTER_CROP); ``` `ImageViewDemo`是一个完整的DEMO,展示了上述各种`ScaleType`的效果。通过运行此DEMO,开发者可以直观地理解每种模式在实际应用中的表现,选择最...

    Imageview之图片填充模式Centercrop模式实现

    imageView.setScaleType(ImageView.ScaleType.CENTER_CROP); ``` 以上就是关于ImageView的"CenterCrop"模式的详细解释及实现方式。这种模式在很多场合都很实用,比如作为背景图片、头像等,可以确保图像不失真的...

Global site tag (gtag.js) - Google Analytics