adjustViewBounds和scaleType(ImageView属性)

   一、首先:ImageView的scaleType的属性有好几种,分别是matrix(默认)、center、centerCrop、centerInside、fitCenter、fitEnd、fitStart、fitXY
 
(1),android:scaleType="center"
保持原图的大小,显示在ImageView的中心。当原图的size大于ImageView的size,超过部分裁剪处理。
 
(2),android:scaleType="centerCrop"
以填满整个ImageView为目的,将原图的中心对准ImageView的中心,等比例放大原图,直到填满ImageView为止(指的是ImageView的宽和高都要填满),原图超过ImageView的部分作裁剪处理。
 
(3),android:scaleType="centerInside"
以原图完全显示为目的,将图片的内容完整居中显示,通过按比例缩小原图的size宽(高)等于或小于ImageView的宽(高)。如果原图的size本身就小于ImageView的size,则原图的size不作任何处理,居中显示在ImageView。
 
(4),android:scaleType="matrix"
不改变原图的大小,从ImageView的左上角开始绘制原图,原图超过ImageView的部分作裁剪处理。
 
(5),android:scaleType="fitCenter"
把原图按比例扩大或缩小到ImageView的ImageView的高度,居中显示
 
(6),android:scaleType="fitEnd"
把原图按比例扩大(缩小)到ImageView的高度,显示在ImageView的下部分位置
 
(7),android:scaleType="fitStart"
把原图按比例扩大(缩小)到ImageView的高度,显示在ImageView的上部分位置                              
(8),android:scaleType="fitXY"
把原图按照指定的大小在View中显示,拉伸显示图片,不保持原比例,填满ImageView.  
        
二、总结:很多人都觉得fitCenter和centerInside没有区别,根据上面的效果图来分析,其实是有区别的。fitCenter是将原图等比例放大或缩小,使原图的高度等于ImageView的高度,并居中显示,而centerInside在原图的原本size大于ImageView的size时,则缩小原图,效果同fitCenter;在原图的原本size小于ImageView的size时,则不进行任何size处理,居中显示,效果同center。

三、最后:ImageView的android:adjustViewBounds属性为是否保持原图的长宽比,单独设置不起作用,需要配合maxWidth或maxHeight一起使用。

特别注意:

adjustViewBounds取值为true时:

Adjust the ImageView's bounds to preserve the aspect ration of its drawable.
调整ImageView的界限来保持图像纵横比不变。
这并不意味着ImageView的纵横比就一定和图像的纵横比相同
 
XML定义里的android:adjustViewBounds="true"会将这个ImageView的scaleType设为fitCenter。不过这个fitCenter会被后面定义的scaleType属性覆盖(如果定义了的话),除非在Java代码里再次显示调用setAdjustViewBounds(true)。
 
如果设置的layout_width与layout_height都是定值,那么设置adjustViewBounds是没有效果的,ImageView将始终是设定的定值的宽高。
 
如果设置的layout_width与layout_height都是wrap_content,那么设置adjustViewBounds是没有意义的,因为ImageView将始终与图片拥有相同的宽高比(但是并不是相同的宽高值,通常都会放大一些)。
 
如果两者中一个是定值,一个是wrap_content,比如layout_width="100px",layout_height="wrap_content"时,ImageView的宽将始终是100px,而高则分两种情况:
(1)当图片的宽小于100px时,layout_height将与图片的高相同,即图片不会缩放,完整显示在ImageView中,ImageView高度与图片实际高度相同。图片没有占满ImageView,ImageView中有空白。
(2)当图片的宽大于等于100px时,此时ImageView将与图片拥有相同的宽高比,因此ImageView的layout_height值为:100除以图片的宽高比。比如图片是500X500的,那么layout_height是100。图片将保持宽高比缩放,完整显示在ImageView中,并且完全占满ImageView。

更多关于ImageView使用请参考《Android ImageView 正确使用姿势 》


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: ImageViewAndroid Studio中的一个视图控件,用于显示图片。它有多种属性,包括: 1. src:设置ImageView显示的图片资源,可以是本地图片或网络图片的URL。 2. scaleType:设置图片的缩放方式,包括fitXY、centerCropcenterInside等。 3. adjustViewBounds:设置ImageView的大小是否根据图片的大小自动调整。 4. maxWidth和maxHeight:设置ImageView的最大宽度和最大高度。 5. tint:设置图片的颜色过滤器,可以改变图片的颜色。 6. alpha:设置图片的透明度。 7. visibility:设置ImageView的可见性,可以是visible、invisible或gone。 8. background:设置ImageView的背景颜色或背景图片。 以上是ImageView的一些常用属性,可以根据实际需要进行设置。 ### 回答2: Android Studio是一款流行的Android应用程序开发工具,在开发Android应用程序时,ImageView是其中的一个重要组件。下面将介绍ImageView属性ImageView属性主要包括图片源、缩放类型和内边距。 图片源:ImageView的src属性定义了ImageView的图片源。该属性的值可以是Drawable类型,也可以是通过资源ID直接引用的图像资源。在设置图像时,我们可以使用向下兼容性。例如,我们可以通过在主程序包中存储图像来向下兼容。 缩放类型:ImageViewscaleType属性定义了图像应该如何在ImageView中缩放。该属性的值可以是下列缩放类型之一: - CENTER:将图像居中,不进行缩放。 - CENTER_CROP:缩放图像使其填满整个ImageView,但是保留图像的宽高比。如果图像尺寸与ImageView尺寸不匹配,则会裁剪图像。 - CENTER_INSIDE:缩放图像使其适应ImageView的尺寸。如果图像尺寸与ImageView尺寸不同,则图像仅在它们共享相同尺寸的范围内显示。 - FIT_CENTER:缩放图像让其适应ImageView大小,并保留宽高比。如果图像尺寸与ImageView尺寸不同,则在图像之间留出空白。 - FIT_XY:缩放图像拉伸或压缩图像,使其填满整个ImageView区域。不保留原始宽高比。 - FIT_END:在 ImageView 右下角放置图像,保留图像的宽高比。如果图像尺寸不等于 ImageView 尺寸,则放置图像的边缘放置在 ImageView 的边缘上。 - FIT_START:在 ImageView 左上角放置图像,保留图像的宽高比。如果图像尺寸不等于 ImageView 尺寸,则放置图像的边缘放置在 ImageView 的边缘上。 - FIT_BOTTOM_START:在 ImageView 左下角放置图像,保留图像的宽高比。如果图像尺寸不等于 ImageView 尺寸,则放置图像的边缘放置在 ImageView 的边缘上。 内边距:ImageView的padding属性为图像提供了一个内边距。如果我们需要在图像周围创建空白,我们可以使用它。 另外,ImageView还有一些其他的属性,如layout_width和layout_height,用于定义视图在父容器中的大小。除此之外,还有一些自定义属性,让我们可以进一步自定义ImageView的表现方式。 ### 回答3: Android Studio是当前最流行的Android开发工具,ImageView是其中的一种常用的视图控件,用于展示图片。 ImageView属性包括以下几种: 1. src属性:指定ImageView所要展示的图片资源的路径。 2. scaleType属性:图片展示的缩放方式,可选的值包括fitXY、centerCropcenterInside等。 3. adjustViewBounds属性:可用于控制ImageView大小的自适应调整,当ImageView的大小大于图片的大小时,ImageView会根据adjustViewBounds属性值进行大小调整。 4. maxHeight和maxWidth属性:可用于控制ImageView显示图片的最大高度和宽度。 5. alpha属性:图片的透明度,值为0-1之间的浮点数。 6. drawable属性:可用于在代码中为ImageView设置图片,为此需要创建Drawable对象。 除此之外,还有其他的一些属性,例如padding、background等,都可以通过Android Studio的属性面板进行设置。 总的来说,ImageViewAndroid开发中比较基础的一个控件,常用于展示图片,其属性也相对简单易懂,学习掌握后可以高效地完成图片相关的布局和设计。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值