一,学习内容:

1,两个重要属性:
		android:src="@drawable/图片名" //加载放在drawable里面的图片资源
		
        android:scaleType="图片填充方式" //可取值有8个:fitCenter(默认),fitEnd,fitstart,fitXY,center,centerCrop,centerInside,matrix
        可分为三类:(1)以center_开头的3种,它们的共同点是居中显示,图片的中心点会与ImageView的中心点重叠;
        		   (2)以fit_开头的4种,它们的共同点是都会对图片进行缩放使之完全显示;
                   (3)matrix,可自定义样式
                   下面通过实列对这八种取值进行详细介绍:
        
2,利用Glide在线加载网络图片:
		Glide.with(this).load("图片地址").into(控件名);

二,详细演示:

放置图片前,测试布局如下:

ImageView背景色为灰色,大小为380×380,父布局设置其背景色为橙色。

Android studio中imageview位置 android studio imageview居中_android studio


另外选取一张大于380×380的图片,方便对比各种取值的结果

Android studio中imageview位置 android studio imageview居中_ide_02

具体演示:

1,fitCenter(默认):保持纵横比缩放图片,直到该图片能完全显示在ImageView中(图片较长的边长与ImageView相应的边长相等),缩放完成后将该图片放在ImageView的中央。

Android studio中imageview位置 android studio imageview居中_android studio_03

2,fitEnd:保持纵横比缩放图片,直到该图片能完全显示在ImageView中(图片较长的边长与ImageView相应的边长相等),缩放完成后将该图片放在ImageView的右下角。

Android studio中imageview位置 android studio imageview居中_android studio_04

3,fitStart:保持纵横比缩放图片,直到该图片能完全显示在ImageView中(图片较长的边长与ImageView相应的边长相等),缩放完成后将该图片放在ImageView的左上角。

Android studio中imageview位置 android studio imageview居中_android studio_05

4,fitXY:对原图宽高进行独立放缩(该放缩不一定保持原比例),使图片完全适用应于ImageView(填充且完全显示)。

Android studio中imageview位置 android studio imageview居中_android studio_06

5,center:把图片放在ImageView中间,但不进行任何缩放,超过ImageView部分不再显示。

Android studio中imageview位置 android studio imageview居中_缩放_07

6,centerCrop:保持纵横比缩放图片,使图片完全覆盖ImageView,图片不一定完全显示。

Android studio中imageview位置 android studio imageview居中_缩放_08

7,centerInside:若原图宽高小于ImageView宽高,则原图不做处理,直接放在ImageView中间居中显示;否则保持纵横比缩放原图使之宽(高)等于ImageView的宽(高)。

Android studio中imageview位置 android studio imageview居中_java_09

8,matrix:该模式需要与ImageView.setImageMatrix(Matrix matrix) 配合使用,因为该模式需要用于指定一个变换矩阵用于指定图片如何展示。其实前面的7种模式都是通过ImageView在内部生成了相应的变换矩阵,等于是提供了该模式的一种特定值,使用这个模式只要传入相应矩阵,也就能实现上述七种显示效果。
在使用时,先调用:

imageView.setScaleType(ImageView.ScaleType.MATRIX);

再调用:

imageView.setImageMatrix(matrix);

注意顺序不要搞错,否则会出现问题的。下面看一下代码:

mIv1=findViewById(R.id.iv_1);
        mIv1.setScaleType(ImageView.ScaleType.MATRIX);  //设置为矩阵模式
        Matrix matrix = new Matrix();           //创建一个单位矩阵
        matrix.setTranslate(100, 100);          //平移x和y各100单位
        matrix.preRotate(30);                   //顺时针旋转30度
        mIv1.setImageMatrix(matrix);       //设置并应用矩阵

效果:

Android studio中imageview位置 android studio imageview居中_android studio_10